@cloudbase/lowcode-deployer
Version:
deploy weda app
182 lines (181 loc) • 4.68 kB
TypeScript
import { BuildType } from '@cloudbase/lowcode-builder';
import { ICredentialOptions } from './types';
export { LocalStorage, TCBAPICloudApiService } from './utils/tcb-api-capi';
interface IDeployerOptions {
api?: {
emoji: (str: string) => string;
projectPath: string;
};
cloudbaseManager?: any;
logger?: any;
}
declare class Deployer {
protected logger: any;
protected api: {
emoji: (str: string) => string;
projectPath: string;
};
constructor(options: IDeployerOptions);
}
export declare enum EDeployMode {
PRODUCTION = "PRODUCTION",
PREVIEW = "PREVIEW"
}
export interface ILowcodeDeployerOptions extends IDeployerOptions {
type: 'WEB' | 'MP';
mode: EDeployMode;
projectPath: string;
appId?: string;
envId?: string;
outputPath?: string;
credential?: ICredentialOptions;
ignores?: string[];
mpAppId?: string;
miniprogramOptions?: {
ciProject?: any;
privateKeyPath?: string;
privateKey?: string;
projectConfig?: any;
uploadOptions?: any;
previewOptions?: IMiniProgramPreviewOptions;
};
webOptions?: {
cloudPath?: string;
buildTypeList?: BuildType[];
gatewayConfig?: {
domain: string;
path: string;
};
/**
* 私有化使用自定义上传endpoint
*/
endpoint?: string;
/**
* 自定义配置上传存储桶
*/
bucket?: string;
region?: string;
credential?: ICredentialOptions;
domain?: string;
};
artifactOptions?: {
bucket: string;
baseKey: string;
region?: string;
credential?: ICredentialOptions;
endpoint?: string;
};
account?: {
uin: string;
};
}
interface IMiniProgramPreviewOptions {
/**
* 小程序的版本描述
*
* @default "CloudBase Framework 一键预览"
*/
desc?: string;
/**
* 小程序应用的编译设置
*/
setting?: ICompileSettings;
/**
* 生成的预览二维码保存在本地的路径
*/
qrcodeOutputPath?: string;
/**
* 小程序应用的预览页面地址
*
* @default pages/index/index
*/
pagePath?: string;
/**
* 小程序应用的预览页面参数
*
* @default
*/
searchQuery?: string;
/**
* 小程序应用的预览页面场景值
*
* @default 1011
*/
scene?: number;
}
interface ICompileSettings {
es6?: boolean;
es7?: boolean;
minify?: boolean;
codeProtect?: boolean;
minifyJS?: boolean;
minifyWXML?: boolean;
minifyWXSS?: boolean;
autoPrefixWXSS?: boolean;
disableUseStrict?: boolean;
}
interface IMiniProgramBuildOutput {
/**
* 预览版二维码链接
*/
link?: string;
/**
* 体验版小程序版本号
*/
version?: string;
}
export default class LowcodeDeployer extends Deployer {
protected credential: any;
private _projectOptions;
private _localstorage;
protected resolvedInputs: Required<ILowcodeDeployerOptions>;
protected lowcodeService: any;
protected tcbService: any;
protected cloudbaseManager: any;
protected account: any;
constructor(options: ILowcodeDeployerOptions);
/**
* miniprogram-ci 疑似有问题
* 每次 project 创建出来其缓存的文件map就已确定并且无法更新
* 因此每次使用除了受控的情况,都临时新建 project 对象
*/
get mpCIProject(): any;
private normalizInputs;
get isPrivate(): boolean;
private _getDefaultWebRootPath;
deploy(options?: {
version?: any;
}): Promise<{
/**
* 小程序为二维码地址
* web 为访问链接
*/
link: string;
version?: string;
}>;
private _postCleanWebCloudStorage;
private _persistArtifactOptions;
private _preProcessWebDeploy;
private _postProcessWebDeploy;
private _postProcessAdminPortal;
private _postProcessWebsiteConfig;
private _getHostingInfoTask;
private _getHostingInfo;
private _generateLowcodeService;
private _generateTcbService;
private _generateMpCIProject;
/**
* 小程序-编译NPM
*/
genearteMiniprogramNPM(): Promise<void>;
private _cleanNonRefFile;
/**
* 小程序-预览
*/
_ciPreview(options?: {}): Promise<IMiniProgramBuildOutput>;
/**
* 小程序-上传
*/
_ciUpload(options?: {}): Promise<IMiniProgramBuildOutput>;
}
export declare const deployer: typeof LowcodeDeployer;