quickgame-cli
Version:
quickgame cli
1 lines • 2.57 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault"),_fs=_interopRequireDefault(require("fs")),_path=_interopRequireDefault(require("path")),_dayjs=_interopRequireDefault(require("dayjs")),_utils=require("../utils"),_rpks=require("../subpackages/rpks");function resolveFiles(e,t){e=(0,_utils.lsdirdeep)(e);return e.includes(_rpks.DIGEST_ZIP_PATH)?(console.warning("检测到存在快游戏保留文件: ".concat(_rpks.DIGEST_ZIP_PATH)),!1):(0,_utils.sortFilesBy)(e,t)}function ZipPlugin(){this.options=Object.assign({priorities:["manifest.json","main.js"]},0<arguments.length&&void 0!==arguments[0]?arguments[0]:{})}function generateDistFile(e,t,i,a){var s="".concat(t.name,".").concat(t.sign,".").concat(a),o=_path.default.join(t.output,s);_fs.default.writeFileSync(o,e),_utils.colorconsole.log("### App Loader ### dist目录签名并生成".concat(a,"文件:").concat(s)),!i&&t.copyRpk&&(o=(0,_dayjs.default)().format("YYYYMMDDhhmmss"),i="".concat(t.name,"_").concat(t.sign,"_").concat(t.versionCode,"_").concat(o,".").concat(a),o=_path.default.join(t.output,i),_fs.default.writeFileSync(o,e),_utils.colorconsole.log("### App Loader ### 复制".concat(a,"文件(").concat(s,")为文件(").concat(i,")")))}ZipPlugin.prototype.apply=function(n){var c,l=this.options,e=l.projectPath,u={debug:{privatekey:_path.default.join(e,"sign/debug","private.pem"),certificate:_path.default.join(e,"sign/debug","certificate.pem")},release:{privatekey:_path.default.join(e,"sign/release","private.pem"),certificate:_path.default.join(e,"sign/release","certificate.pem")}}[l.sign];!l.disableSubpackages&&l.subpackages&&0<l.subpackages.length&&(c=l.subpackages),n.hooks.afterEmit.tapAsync("ZipPlugin",function(e,a){var t,i,s,o,r;u?(t=u.privatekey,i=u.certificate,_fs.default.existsSync(t)?_fs.default.existsSync(i)?(t=_fs.default.readFileSync(t),i=_fs.default.readFileSync(i),!1===(r=resolveFiles(l.pathBuild,l.priorities))?a():(o=(s=(0,_rpks.createPackagesDefinition)(c)).fullPackage,(0,_rpks.allocateResourceToPackages)(r,l.pathBuild,o,r=s.subPackages),(0,_rpks.signZipPkgs)(l.name,t,i,o,r,l.disableStreamPack).then(function(e){var t=e.rpksBuffer,i=e.rpkBuffer;_fs.default.mkdir(l.output,function(){generateDistFile(t||i,l,n.watchMode,"rpk"),a()})}))):(_utils.colorconsole.log("### App Loader ### 缺少证书文件, 打包失败: "+i),a()):(_utils.colorconsole.log("### App Loader ### 缺少私钥文件, 打包失败: "+t),a())):(_utils.colorconsole.log("### App Loader ### 无签名配置项, 放弃打包: "+l.sign),a())})},module.exports=ZipPlugin;