| 123 |
- !function(require, directRequire){
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const tslib_1=require("tslib"),ci=tslib_1.__importStar(require("./index")),yargs_1=tslib_1.__importDefault(require("yargs")),log_1=tslib_1.__importDefault(require("./utils/log")),fs_extra_1=tslib_1.__importDefault(require("fs-extra")),path_1=tslib_1.__importDefault(require("path"));async function run(){let e;function a(a){return{command:a,describe:a+" commands",builder:i=>i.usage(`Usage: $0 cloud ${a} <command>`).command({command:"upload",describe:"upload files",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the local folder",string:!0,demandOption:!0},remotePath:{alias:"rp",desc:"path to the remote folder",string:!0,demandOption:!0},concurrency:{alias:"c",desc:"concurrenct upload file count",number:!0,default:5,demandOption:!0}}).group(["env","path","remotePath"],"Options:"),handler:i=>e=e=>ci.cloud["storage"===a?"uploadStorage":"uploadStaticStorage"]({project:e,env:i.env,path:i.path,remotePath:i.remotePath})}),handler:()=>{}}}const i=yargs_1.default.usage("Usage: miniprogram-ci <command> [options]").command("$0","",i=>{i.command({command:"preview",describe:"preview project and get a preview qrcode",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"upload",describe:"upload project",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"get-compiled-result",describe:"get local compiled result, which will be uploaded to the server",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}).options("save-path",{alias:"sp",describe:"save path",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"check-code-quality",describe:"check code quality and get a json report",builder:e=>e.options("appid",{describe:"project appid",string:!0,demandOption:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0,demandOption:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0,demandOption:!0}).options("save-path",{alias:"sp",describe:"save path",string:!0,demandOption:!1}),handler:()=>{}}).command({command:"pack-npm",describe:"pack npm modules for miniprogram",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path"),handler:()=>{}}).command({command:"get-dev-source-map",describe:"get source map of last upload version",builder:e=>e.demandOption("appid").demandOption("project-path").demandOption("private-key-path").options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"],demandOption:!0}).options("source-map-save-path",{describe:"path to save source map zip",string:!0,demandOption:!0}),handler:()=>{}}).command({command:"pack-npm-manually",describe:"pack npm modules with specified node_modules position",builder:e=>e.options({"pack-npm-manually-package-json-path":{desc:"path of node_modules related package.json",string:!0,demandOption:!0},"pack-npm-manually-miniprogram-npm-dist-dir":{desc:"path of target miniprogram_npm position",string:!0,demandOption:!0},ignores:{alias:"i",desc:"ignore files, glob format",array:!0,demandOption:!1}}).group(["pack-npm-manually-package-json-path","pack-npm-manually-miniprogram-npm-dist-dir","ignores"],"Options:"),handler:e=>{(async()=>{const a=await ci.packNpmManually({packageJsonPath:String(e.packNpmManuallyPackageJsonPath),miniprogramNpmDistDir:String(e.packNpmManuallyMiniprogramNpmDistDir),ignores:[]});log_1.default.log("pack npm done, pack result:",a)})()}}).command({command:"cloud",describe:"cloudbase commands",builder:i=>i.usage("Usage: $0 cloud <command>").command({command:"functions",describe:"cloudfunctions commands",builder:a=>a.usage("Usage: $0 cloud functions <command>").command({command:"upload",describe:"upload a cloudfunction",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},name:{alias:"n",desc:"cloudfunction name",string:!0,demandOption:!0},path:{alias:"p",desc:"path to the folder containing cloudfunction code",string:!0,demandOption:!0},"remote-npm-install":{alias:"rnpm",desc:"if true, node_modules will not be uploaded and NPM dependencies will be installed in the cloud. if false, node_modules will be uploaded.",boolean:!0}}).group(["env","name","path","remote-npm-install"],"Options:"),handler:a=>e=e=>ci.cloud.uploadFunction({project:e,env:a.env,name:a.name,path:a.path,remoteNpmInstall:a["remote-npm-install"]})}),handler:()=>{}}).command(a("storage")).command(a("staticstorage")).command({command:"container",describe:"container commands",builder:a=>a.usage("Usage: $0 cloud container <command>").command({command:"create",describe:"create a version by uploading package",builder:e=>e.options({env:{alias:"e",desc:"env id",string:!0,demandOption:!0},flow:{desc:"flow ratio of this version",number:!0,demandOption:!0},cpu:{desc:"cpu cores of this version",number:!0,demandOption:!0},mem:{desc:"memory gigabytes of this version",number:!0,demandOption:!0},min:{desc:"minimal copies",number:!0,demandOption:!0},max:{desc:"maximum copies",number:!0,demandOption:!0},threshold:{desc:"cpu threshold for auto scaling",number:!0,demandOption:!0},port:{desc:"container listening port for liveness",number:!0,demandOption:!0},service:{desc:"service name",string:!0,demandOption:!0},remark:{desc:"version remark",string:!0},envParams:{desc:"stringified environment parameters Record<string, string>",string:!0,default:"{}"},allowHttp:{desc:"allow direct http request to this version",boolean:!0,default:!1},containerRoot:{alias:"cr",desc:"path to the container folder",string:!0,demandOption:!0},dockerfilePath:{desc:"custom docker file path",string:!0},buildDir:{desc:"build directory",string:!0}}).group(["env","flow","cpu","mem","min","max","threshold","port","service","remark","envParams","allowHttp","containerRoot","dockerfilePath","buildDir"],"Options:"),handler:a=>e=e=>ci.cloud.uploadContainer({project:e,env:a.env,containerRoot:a.containerRoot,version:{flowRatio:a.flow,cpu:a.cpu,mem:a.mem,minNum:a.min,maxNum:a.max,policyType:"cpu",policyThreshold:a.threshold,containerPort:a.port,serverName:a.service,uploadType:"package",buildDir:a.buildDir,envParams:a.envParams,dockerfilePath:a.dockerfilePath,useHttpRoute:a.allowHttp,versionRemark:a.remark}})}),handler:()=>{}}),handler:()=>{}}).options("appid",{describe:"project appid",string:!0}).options("project-path",{alias:"pp",describe:"project path",string:!0}).options("private-key-path",{alias:"pkp",describe:"private key path",string:!0}).options("locales",{describe:"set locales",default:"en",string:!0,choices:["en","zh"]}).option("verbose",{alias:"v",description:"run with verbose logging",default:!0,boolean:!0}).options("proxy",{describe:"proxy url",default:"",string:!0}).options("project-type",{alias:"pt",describe:"project type",string:!0,default:"miniProgram",choices:["miniProgram","miniGame","miniProgramPlugin","miniGamePlugin"]}).options("project-ignores",{alias:"pi",describe:"project ignores",array:!0}).options("upload-description",{alias:"ud",describe:"the uploaded code version description",string:!0}).options("upload-version",{alias:"uv",describe:"the uploaded code version description",string:!0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("threads",{describe:"the number indicates how many threads will be created for compile the source files",number:!0,default:0,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("use-cos",{describe:"enable uploading code-package through the async way, which is more stable than the direct way",boolean:!0,default:!1,demandOption:process.argv.includes("preview")||process.argv.includes("upload")&&!process.argv.includes("cloud")}).options("robot",{alias:"r",describe:"the robot user who is uploading the project",string:!0,default:"1",choices:["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"]}).options("enable-es6",{describe:"enable transform from es6 to es5",default:!1,boolean:!0}).options("enable-es7",{describe:"enable transform from es7 to es5",default:!1,boolean:!0}).options("enable-autoprefixwxss",{describe:"enable autoprefixwxss",default:!1,boolean:!0}).options("enable-minify-wxss",{describe:"enable minify wxss",default:!1,boolean:!0}).options("enable-minify-wxml",{describe:"enable minify wxml",default:!1,boolean:!0}).options("enable-minify-js",{describe:"enable minify js",default:!1,boolean:!0}).options("enable-minify",{describe:"enable minify js/wxml/wxss",default:!1,boolean:!0}).options("enable-code-protect",{describe:"enable code protect",default:!1,boolean:!0}).options("enable-qrcode",{describe:"enable generate weapp qrcode",default:!1,boolean:!0}).options("qrcode-format",{describe:"format of output qrcode",default:"terminal",string:!0,choices:["base64","image","terminal"]}).options("qrcode-output-dest",{describe:"destination of output qrcode",string:!0}).options("preview-page-path",{describe:"preview with page path",string:!0}).options("preview-search-query",{describe:'preview with query, Tips: "&" should be "\\&" in command line',string:!0}).options("scene",{describe:"preview with scene, about scene: https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html",string:!0})},e=>e).help().argv;if(i.help&&(yargs_1.default.showHelp(),process.exit(0)),i.proxy&&ci.proxy(i.proxy),ci.setLocale(i.locales),i._&&!i._.includes("pack-npm-manually")){const a=new ci.Project({appid:i.appid,projectPath:i.projectPath,privateKeyPath:i.privateKeyPath,type:i.projectType,ignores:i.projectIgnores});if(e)await e(a);else if(i._.includes("upload"))await ci.upload({project:a,setting:{es6:i.enableEs6,es7:i.enableEs7,minify:i.enableMinify,autoPrefixWXSS:i.enableHijack,minifyWXML:i.enableMinify||i.enableMinifyWxml,minifyWXSS:i.enableMinify||i.enableMinifyWxss,minifyJS:i.enableMinify||i.enableMinifyJs,codeProtect:i.enableCodeProtect},threads:i.threads,version:i.uploadVersion,desc:i.uploadDescription,robot:i.robot,onProgressUpdate:e=>{i.verbose&&log_1.default.log(""+e)}});else if(i._.includes("preview")){let e=i.scene;e&&(e=parseInt(e,10)),await ci.preview({project:a,setting:{es6:i.enableEs6,es7:i.enableEs7,minify:i.enableMinify,autoPrefixWXSS:i.enableHijack,minifyWXML:i.enableMinify||i.enableMinifyWxml,minifyWXSS:i.enableMinify||i.enableMinifyWxss,minifyJS:i.enableMinify||i.enableMinifyJs,codeProtect:i.enableCodeProtect},threads:i.threads,version:i.uploadVersion,desc:i.uploadDescription,robot:i.robot,pagePath:i.previewPagePath,searchQuery:i.previewSearchQuery,scene:e,onProgressUpdate:e=>{i.verbose&&log_1.default.log(""+e)},qrcodeFormat:i.qrcodeFormat,qrcodeOutputDest:i.qrcodeOutputDest})}else if(i._.includes("get-compiled-result")){let e=i.scene;e&&(e=parseInt(e,10)),await ci.getCompiledResult({project:a,setting:{es6:i.enableEs6,es7:i.enableEs7,minify:i.enableMinify,autoPrefixWXSS:i.enableHijack,minifyWXML:i.enableMinify||i.enableMinify,minifyWXSS:i.enableMinify||i.enableMinifyWxss,minifyJS:i.enableMinify||i.enableMinifyJs,codeProtect:i.enableCodeProtect},threads:i.threads,version:i.uploadVersion,desc:i.uploadDescription,robot:i.robot,pagePath:i.previewPagePath,searchQuery:i.previewSearchQuery,scene:e,onProgressUpdate:e=>{i.verbose&&log_1.default.log(""+e)},qrcodeFormat:i.qrcodeFormat,qrcodeOutputDest:i.qrcodeOutputDest},i.savePath)}else if(i._.includes("pack-npm")){const e=await ci.packNpm(a,{ignores:i.packNpmIgnores,reporter:e=>{i.verbose&&console.log(e)}})||[];e.length&&(log_1.default.log("Pack npm warning:"),log_1.default.log(e.map((e,a)=>`${a+1}. ${e.msg}\n \t> code: ${e.code}\n \t@ ${e.jsPath}:${e.startLine}-${e.endLine}`).join("---------------\n")))}else if(i._.includes("get-dev-source-map"))await ci.getDevSourceMap({project:a,robot:parseInt(i.robot,10),sourceMapSavePath:i.sourceMapSavePath}),log_1.default.info(`save sourcemap.zip to ${i.sourceMapSavePath} successfully`);else if(i._.includes("check-code-quality")){const e=await ci.checkCodeQuality(a);i.savePath?(fs_extra_1.default.ensureDirSync(path_1.default.dirname(i.savePath)),fs_extra_1.default.writeFileSync(i.savePath,JSON.stringify(e)),log_1.default.info(`save json format report to ${i.savePath} successfully`)):console.log(e)}}}run().catch(e=>{console.error(e),process.exit(1)});
- }(require("licia/lazyImport")(require), require)
|