@baic/yolk-cli 2.1.0-alpha.64 → 2.1.0-alpha.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es/yolk.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- function e(e){return n(e)||i(e)||o(e)||t()}function t(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(e){if(Array.isArray(e))return e}function r(e){return a(e)||i(e)||o(e)||c()}function c(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(e,t){if(e){if("string"===typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function i(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function a(e){if(Array.isArray(e))return s(e)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}import{execSync as p,spawn as f}from"child_process";import d from"@baic/yolk-cli/compiled/commander";import y from"fs";import g from"@baic/yolk-cli/compiled/glob";import h from"inquirer";import v from"lodash";import b from"@baic/yolk-cli/compiled/minimatch";import*as j from"miniprogram-ci";import S from"@baic/yolk-cli/compiled/mkdirp";import x from"@baic/yolk-cli/compiled/mustache";import k from"ora";import w from"os";import O from"path";import{format as P}from"@baic/yolk-cli/compiled/prettier";import E from"@baic/yolk-cli/compiled/rimraf";import F from"../package.json";var I=require("@baic/yolk-cli/compiled/staged-git-files"),B=process.cwd(),A="##### CREATED BY YOLK #####",D={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},q="utf-8",$=20,T=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/.ice/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/android/**","**/ios/**","**/mock/**","**/yolk*/**"],N=k(),Q=function(e){return e&&N.warn(Buffer.from(e,q).toString())},R=function(e){return e&&N.fail(Buffer.from(e,q).toString())},_=function(e){return e&&N.succeed(Buffer.from(e,q).toString())},K=function(e){return e&&N.info(Buffer.from(e,q).toString())},L=function(e){return"win32"===process.platform?"".concat(e,".cmd"):e},C=function(){_("yolk complete!"),process.exit(0)},J=function(){Q("yolk break!"),process.exit(0)},U=function(e){var t=e.command,n=e.args,r=e.complete,c=e.close,o=e.exit,i=void 0===o||o,a=f(L(t),n||[],{stdio:"inherit"}).on("close",(function(e){e?(c&&c(),R("yolk close!"),process.exit(e)):(r&&r(),i&&C())}));process.on("SIGINT",(function(){d.runningCommand&&d.runningCommand.kill("SIGKILL"),a.kill(),J()}))},H=function(e,t,n){h.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"web big screen template(umi framework)",value:"umi-web-screen"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"mobile HBuilderX h5+app template(umi framework)",value:"umi-mobile-h5+app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"web template(ice framework)",value:"ice-web"},{name:"web big screen template(ice framework)",value:"ice-web-screen"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"mobile HBuilderX h5+app template(ice framework)",value:"ice-mobile-h5+app"},{name:"mobile native template(ice framework)",value:"ice-mobile-native"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:O.basename(O.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:"default",choices:[{name:"\u9ed8\u8ba4\u5b89\u88c5",value:"default"},{name:"\u8df3\u8fc7\u5b89\u88c5",value:!1},{name:"pnpm install",value:"pnpm"},{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"}]}]).then((function(r){var c={projectName:r.projectName,dependenciesInstallType:r.dependenciesInstallType,yolkVersion:F.version};t||(t=O.join(__dirname,"../templates/".concat(r.type))),_("\u590d\u5236\u6a21\u7248 ".concat(O.basename(t)));var o=g.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(o.forEach((function(n){if(t){var r=O.join(t,n);if(!y.statSync(r).isDirectory())if(n.endsWith(".tpl")){var o=y.readFileSync(r,q),i=O.join(e,n.replace(/\.tpl$/,"")),a=x.render(o,c);S.sync(O.dirname(i)),_("\u521b\u5efa ".concat(O.relative(e,i))),y.writeFileSync(i,a,q)}else{_("\u521b\u5efa ".concat(n));var s=O.join(e,n);S.sync(O.dirname(s)),y.copyFileSync(r,s)}}})),_("\u590d\u5236\u6a21\u7248 success!"),n&&y.existsSync(t)&&E(t,(function(){_("\u7f13\u5b58\u5220\u9664 success! ".concat(O.basename(t||"")))})),r.dependenciesInstallType)switch(_("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),r.dependenciesInstallType){case"default":case"pnpm":U({command:"pnpm",args:["install"]});break;case"yarn":U({command:"yarn",args:["install"]});break;case"npm":U({command:"npm",args:["install"]});break;default:}_("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},M=function(e,t){return H(e,t,!0)},V=function(){var e=g.sync("*.yolkrc*",{cwd:B,dot:!0});if(!e.length)return{};var t=O.join(B,e[0]);if(!y.existsSync(t))return{};try{return JSON.parse(y.readFileSync(t,q))||{}}catch(n){return R(n.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},G=function(){var e=O.join(B,".prettierrc");if(y.existsSync(e))try{return JSON.parse(y.readFileSync(e,q))||{}}catch(t){return R(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return require("./.prettierrc")},X=function(){var e=O.join(B,"project.config.json");if(!y.existsSync(e))return{};try{return JSON.parse(y.readFileSync(e,q))||{}}catch(t){return R(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},Y=function(){var e=O.join(B,"package.json");if(!y.existsSync(e))return{};try{return JSON.parse(y.readFileSync(e,q))||{}}catch(t){return R(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},W=function(){return y.existsSync(O.join(B,"project.config.json"))},z=function(){return y.existsSync(O.join(B,".icerc.ts"))||y.existsSync(O.join(B,".icerc.js"))||y.existsSync(O.join(B,".ice.ts"))||y.existsSync(O.join(B,".ice.js"))},Z=function(){var e=y.existsSync(O.join(B,"node_modules/.bin/max"));if(!e)try{e=y.existsSync(require.resolve("@umijs/max"))}catch(r){}if(!e)try{e=/umi@4\.(\d+)\.(\d+)/.test(p("umi -v").toString())}catch(r){}if(!e){var t=O.join(B,"node_modules","umi","package.json");if(y.existsSync(t))try{var n=JSON.parse(y.readFileSync(t,q))||{};e=n.version&&+n.version.split(".")[0]>3}catch(r){}}return e},ee=function(){return y.existsSync(O.join(B,".icerc.ts"))?".icerc.ts":y.existsSync(O.join(B,".icerc.js"))?".icerc.js":y.existsSync(O.join(B,".ice.ts"))?".ice.ts":".ice.js"},te=function(){var e=O.join(B,"project.config.json");if(y.existsSync(e)){var t=require(e);return t.appid}return""},ne=function(){return y.existsSync(O.join(B,"project.tt.json"))&&0===te().indexOf("tt")},re=function(){return 0===te().indexOf("20")},ce=function(){var e=V(),t="";try{t=require.resolve("@baic/eslint-config-yolk")}catch(c){}var n=g.sync("*.eslintrc*",{cwd:B,dot:!0}),r=n[0];return!1===e.strict&&r&&y.existsSync(r)?r:y.existsSync(t)?t:r},oe=function(){var e=V(),t="";try{t=require.resolve("@baic/stylelint-config-yolk")}catch(c){}var n=g.sync("*.stylelintrc*",{cwd:B,dot:!0}),r=n[0];return!1===e.strict&&r&&y.existsSync(r)?r:y.existsSync(t)?t:r},ie=function(){var e=O.join(B,".git/"),t=O.join(B,".git/hooks"),n=O.join(t,"pre-commit"),r=y.existsSync(e),c=y.existsSync(n),o=c&&y.readFileSync(n,q).includes(A);if(r&&(!c||!o)){S.sync(t),y.writeFileSync(n,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",A].join(w.EOL),q);try{y.chmodSync(n,"777")}catch(i){R("chmod ".concat(n," failed: ").concat(i.message))}_("Create pre-commit hook")}},ae=function(){var e=V(),t=!1!==e.strict,n=e.eslintIgnore,c=e.stylelintIgnore;I().then((function(e){var o=function(n){return new Promise((function(o,i){var a=oe();if(a){var s=e.map((function(e){return e.filename})).filter((function(e){return/^(src|tests)/i.test(e)})).filter((function(e){return{css:/\.cs{2}$/i,less:/\.les{2}$/i,sass:/\.sas{2}$/i,scss:/\.scs{2}$/i}[n].test(e)})).filter((function(e){var t=O.join(B,e);return y.existsSync(t)})).filter((function(e){return T.every((function(t){return!b(e,t,{matchBase:!0})}))})).filter((function(e){return"string"===typeof c?!b(e,c,{matchBase:!0}):c instanceof RegExp?!c.test(e):!Array.isArray(c)||c.every((function(t){return"string"===typeof t?!b(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)}))}));if(s.length)if(s.forEach((function(e){if(e&&y.existsSync(e)){var t=O.extname(e).replace(/^\./,""),n=y.readFileSync(e,q),r=P(n,l({parser:D[t]},G()));y.writeFileSync(e,r,q)}})),_("".concat(n," - ").concat(s.length," files prettier success!")),s.length>=$){var m=[];v.chunk(s,$).forEach((function(e){m.push(new Promise((function(c,o){U({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax","postcss-".concat(n),"--config",a].concat(r(e)),complete:c,close:o,exit:!1})})))}));var u=0,p=function e(){u<m.length?m[u].then((function(){u++,e()})).catch(i):(_("".concat(n," - ").concat(s.length," files stylelint success!")),o())};p()}else s.length&&U({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax","postcss-".concat(n),"--config",a].concat(r(s)),complete:function(){_("".concat(n," - ").concat(s.length," files stylelint success!")),o()},close:i,exit:!1});else o()}else R("\u6ca1\u6709 stylelintrc \u6587\u4ef6\uff0c".concat(n," files prettier fail!")),o()}))},i=function(c){return new Promise((function(o,i){var a=ce();if(a){var s=e.map((function(e){return e.filename})).filter((function(e){return/^(src|tests)/i.test(e)})).filter((function(e){return{js:/\.js$/i,jsx:/\.jsx$/i,ts:/\.ts$/i,tsx:/\.tsx$/i}[c].test(e)})).filter((function(e){var t=O.join(B,e);return y.existsSync(t)})).filter((function(e){return T.every((function(t){return!b(e,t,{matchBase:!0})}))})).filter((function(e){return"string"===typeof n?!b(e,n,{matchBase:!0}):n instanceof RegExp?!n.test(e):!Array.isArray(n)||n.every((function(t){return"string"===typeof t?!b(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)}))}));if(s.length)if(s.forEach((function(e){if(e&&y.existsSync(e)){var t=O.extname(e).replace(/^\./,""),n=y.readFileSync(e,q),r=P(n,l({parser:D[t]},G()));y.writeFileSync(e,r,q)}})),_("".concat(c," - ").concat(s.length," files prettier success!")),s.length>=$){var m=[];v.chunk(s,$).forEach((function(e){m.push(new Promise((function(n,c){U({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",a].concat(r(e)),complete:n,close:c,exit:!1})})))}));var u=0,p=function e(){u<m.length?m[u].then((function(){u++,e()})).catch(i):(_("".concat(c," - ").concat(s.length," files eslint success!")),o())};p()}else s.length&&U({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",a].concat(r(s)),complete:function(){_("".concat(c," - ").concat(s.length," files eslint success!")),o()},close:i,exit:!1});else o()}else R("\u6ca1\u6709 eslintrc \u6587\u4ef6\uff0c".concat(c," files eslint fail!")),o()}))};Q("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),t&&(Q("git commit \u7981\u6b62 lint \u7684 ignore \u884c\u4e3a"),c&&Q("\u901a\u8fc7 .yolkrc \u914d\u7f6e stylelintIgnore: ".concat(c,"\u3002")),n&&Q("\u901a\u8fc7 .yolkrc \u914d\u7f6e eslintIgnore: ".concat(n,"\u3002"))),o("css").then((function(){return o("less")})).then((function(){return o("sass")})).then((function(){return o("scss")})).then((function(){return i("js")})).then((function(){return i("jsx")})).then((function(){return i("ts")})).then((function(){return i("tsx")})).then(C).catch(C)}))},se=function(e){var t=e.mProject,n=e.mPrivateKeyPath,r=e.mVersion,c=e.mDesc,o=e.mRobot,i=e.mQrcodeFormat,a=e.mQrcodeOutputDest,s=e.mPagePath,m=e.mSearchQuery,l=y.existsSync(O.join(B,".git"))?p("git log -1 --pretty=format:%H").toString():"",u=X(),f=u.appid,d=t||O.join(B,"dist"),g=n||O.join(B,"private.".concat(f,".key"));if(y.existsSync(d)){if(y.existsSync(g)){var h=Y(),v=r||h.version||u.version||"1.0.0",b=c||h.description||u.description,S="version: ".concat(v,";").concat(l?" commit: ".concat(l,";"):"").concat(b?" description: ".concat(b,";"):"");l&&K("commit: ".concat(l)),K("dist: ".concat(d)),K("key: ".concat(g)),K("appid: ".concat(f)),K("version: ".concat(v)),K("desc: ".concat(S));var x=new j.Project({appid:f,type:"miniProgram",projectPath:d,privateKeyPath:g,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:f,options:{project:x,version:v,desc:S,setting:u.setting,robot:o,qrcodeFormat:i,qrcodeOutputDest:a,pagePath:s,searchQuery:m}}}throw Error("\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(".concat(g,")"))}throw Error("\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(".concat(d,")"))},me=function(){ie(),process.argv.length>2?d.version(F.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action((function(t,n){var r=e(n),c=r[0],o=r.slice(1),i=t.clone,a=t.template,s=t.docs;if(c)switch(K("yolk version: ".concat(F.version)),K("node version: ".concat(process.version)),K("platform: ".concat(w.platform())),K("memory: ".concat(v.floor(w.freemem()/1024/1024)," MB(").concat(v.floor(w.totalmem()/1024/1024)," MB)")),c){case"init":if(_("yolk ".concat(c," \u5f00\u59cb")),i)if(a){var m=".yolk",u=O.join(B,m);y.existsSync(u)&&E(u,(function(){_("\u7f13\u5b58\u5220\u9664 success! ".concat(u))})),U({command:"git",args:["clone","-b","master","--depth","1",a,m].concat(o)}),M(B,u)}else R("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else H(B);break;case"start":W()?ne()?U({command:"taro",args:["build","--type","tt","--watch"].concat(o)}):re()?U({command:"taro",args:["build","--type","alipay","--watch"].concat(o)}):U({command:"taro",args:["build","--type","weapp","--watch"].concat(o)}):s?U({command:"dumi",args:["dev"].concat(o)}):z()?U({command:"icejs",args:["start","--config",ee()].concat(o)}):Z()?U({command:"max",args:["dev"].concat(o)}):U({command:"umi",args:["dev"].concat(o)});break;case"build":W()?ne()?U({command:"taro",args:["build","--type","tt"].concat(o)}):re()?U({command:"taro",args:["build","--type","alipay"].concat(o)}):U({command:"taro",args:["build","--type","weapp"].concat(o)}):s?U({command:"dumi",args:["build"].concat(o)}):z()?U({command:"icejs",args:["build","--config",ee()].concat(o)}):Z()?U({command:"max",args:["setup"].concat(o),complete:function(){return U({command:"max",args:["build"].concat(o)})},exit:!1}):U({command:"umi",args:["build"].concat(o)});break;case"pre-commit":ae();break;case"test":U({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(o)});break;case"miniapp-upload":case"miniprogram-upload":if(W())if(ne());else if(re());else{var p=se(t),f=p.appid,d=p.options;K("".concat(f,"\u4e0a\u4f20\u5f00\u59cb")),j.upload(l(l({},v.pick(d,["project","version","desc","setting","robot"])),{},{onProgressUpdate:function(e){if(v.isString(e))K("task: ".concat(e));else{var t=e.status,n=e.message;K("task(".concat(t,"): ").concat(n))}}})).then((function(){_("".concat(f,"\u4e0a\u4f20\u5b8c\u6210"))}))}break;case"miniapp-preview":case"miniprogram-preview":if(W())if(ne());else if(re());else{var g=se(t),h=g.appid,b=g.options;K("".concat(h,"\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb")),j.preview(l(l({},v.pick(b,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"])),{},{onProgressUpdate:function(e){if(v.isString(e))K("task: ".concat(e));else{var t=e.status,n=e.message;K("task(".concat(t,"): ").concat(n))}}})).then((function(){_("".concat(h,"\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210"))}))}break;default:J()}})).parse(process.argv):J()};me();
2
+ function e(e){return n(e)||i(e)||o(e)||t()}function t(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(e){if(Array.isArray(e))return e}function r(e){return a(e)||i(e)||o(e)||c()}function c(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function o(e,t){if(e){if("string"===typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function i(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function a(e){if(Array.isArray(e))return s(e)}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}import{execSync as p,spawn as f}from"child_process";import d from"fs";import y from"os";import g from"path";import h from"inquirer";import v from"lodash";import*as b from"miniprogram-ci";import j from"ora";import S from"../compiled/commander";import x from"../compiled/glob";import w from"../compiled/minimatch";import k from"../compiled/mkdirp";import O from"../compiled/mustache";import{format as P}from"../compiled/prettier";import E from"../compiled/rimraf";import F from"../package.json";var I=require("../compiled/staged-git-files"),B=process.cwd(),A="##### CREATED BY YOLK #####",D={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},q="utf-8",$=20,T=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/.ice/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/android/**","**/ios/**","**/mock/**","**/yolk*/**"],N=j(),Q=function(e){return e&&N.warn(Buffer.from(e,q).toString())},R=function(e){return e&&N.fail(Buffer.from(e,q).toString())},_=function(e){return e&&N.succeed(Buffer.from(e,q).toString())},K=function(e){return e&&N.info(Buffer.from(e,q).toString())},L=function(e){return"win32"===process.platform?"".concat(e,".cmd"):e},C=function(){_("yolk complete!"),process.exit(0)},J=function(){Q("yolk break!"),process.exit(0)},U=function(e){var t=e.command,n=e.args,r=e.complete,c=e.close,o=e.exit,i=void 0===o||o,a=f(L(t),n||[],{stdio:"inherit"}).on("close",(function(e){e?(c&&c(),R("yolk close!"),process.exit(e)):(r&&r(),i&&C())}));process.on("SIGINT",(function(){S.runningCommand&&S.runningCommand.kill("SIGKILL"),a.kill(),J()}))},H=function(e,t,n){h.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"web big screen template(umi framework)",value:"umi-web-screen"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"mobile HBuilderX h5+app template(umi framework)",value:"umi-mobile-h5+app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"web template(ice framework)",value:"ice-web"},{name:"web big screen template(ice framework)",value:"ice-web-screen"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"mobile HBuilderX h5+app template(ice framework)",value:"ice-mobile-h5+app"},{name:"mobile native template(ice framework)",value:"ice-mobile-native"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:g.basename(g.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:"default",choices:[{name:"\u9ed8\u8ba4\u5b89\u88c5",value:"default"},{name:"\u8df3\u8fc7\u5b89\u88c5",value:!1},{name:"pnpm install",value:"pnpm"},{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"}]}]).then((function(r){var c={projectName:r.projectName,dependenciesInstallType:r.dependenciesInstallType,yolkVersion:F.version};t||(t=g.join(__dirname,"../templates/".concat(r.type))),_("\u590d\u5236\u6a21\u7248 ".concat(g.basename(t)));var o=x.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(o.forEach((function(n){if(t){var r=g.join(t,n);if(!d.statSync(r).isDirectory())if(n.endsWith(".tpl")){var o=d.readFileSync(r,q),i=g.join(e,n.replace(/\.tpl$/,"")),a=O.render(o,c);k.sync(g.dirname(i)),_("\u521b\u5efa ".concat(g.relative(e,i))),d.writeFileSync(i,a,q)}else{_("\u521b\u5efa ".concat(n));var s=g.join(e,n);k.sync(g.dirname(s)),d.copyFileSync(r,s)}}})),_("\u590d\u5236\u6a21\u7248 success!"),n&&d.existsSync(t)&&E(t,(function(){_("\u7f13\u5b58\u5220\u9664 success! ".concat(g.basename(t||"")))})),r.dependenciesInstallType)switch(_("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),r.dependenciesInstallType){case"default":case"pnpm":U({command:"pnpm",args:["install"]});break;case"yarn":U({command:"yarn",args:["install"]});break;case"npm":U({command:"npm",args:["install"]});break;default:}_("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},M=function(e,t){return H(e,t,!0)},V=function(){var e=x.sync("*.yolkrc*",{cwd:B,dot:!0});if(!e.length)return{};var t=g.join(B,e[0]);if(!d.existsSync(t))return{};try{return JSON.parse(d.readFileSync(t,q))||{}}catch(n){return R(n.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},G=function(){var e=g.join(B,".prettierrc");if(d.existsSync(e))try{return JSON.parse(d.readFileSync(e,q))||{}}catch(t){return R(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return require("./.prettierrc")},X=function(){var e=g.join(B,"project.config.json");if(!d.existsSync(e))return{};try{return JSON.parse(d.readFileSync(e,q))||{}}catch(t){return R(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},Y=function(){var e=g.join(B,"package.json");if(!d.existsSync(e))return{};try{return JSON.parse(d.readFileSync(e,q))||{}}catch(t){return R(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},W=function(){return d.existsSync(g.join(B,"project.config.json"))},z=function(){return d.existsSync(g.join(B,".icerc.ts"))||d.existsSync(g.join(B,".icerc.js"))||d.existsSync(g.join(B,".ice.ts"))||d.existsSync(g.join(B,".ice.js"))},Z=function(){var e=d.existsSync(g.join(B,"node_modules/.bin/max"));if(!e)try{e=d.existsSync(require.resolve("@umijs/max"))}catch(r){}if(!e)try{e=/umi@4\.(\d+)\.(\d+)/.test(p("umi -v").toString())}catch(r){}if(!e){var t=g.join(B,"node_modules","umi","package.json");if(d.existsSync(t))try{var n=JSON.parse(d.readFileSync(t,q))||{};e=n.version&&+n.version.split(".")[0]>3}catch(r){}}return e},ee=function(){return d.existsSync(g.join(B,".icerc.ts"))?".icerc.ts":d.existsSync(g.join(B,".icerc.js"))?".icerc.js":d.existsSync(g.join(B,".ice.ts"))?".ice.ts":".ice.js"},te=function(){var e=g.join(B,"project.config.json");if(d.existsSync(e)){var t=require(e);return t.appid}return""},ne=function(){return d.existsSync(g.join(B,"project.tt.json"))&&0===te().indexOf("tt")},re=function(){return 0===te().indexOf("20")},ce=function(){var e=V(),t="";try{t=require.resolve("@baic/eslint-config-yolk")}catch(c){}var n=x.sync("*.eslintrc*",{cwd:B,dot:!0}),r=n[0];return!1===e.strict&&r&&d.existsSync(r)?r:d.existsSync(t)?t:r},oe=function(){var e=V(),t="";try{t=require.resolve("@baic/stylelint-config-yolk")}catch(c){}var n=x.sync("*.stylelintrc*",{cwd:B,dot:!0}),r=n[0];return!1===e.strict&&r&&d.existsSync(r)?r:d.existsSync(t)?t:r},ie=function(){var e=g.join(B,".git/"),t=g.join(B,".git/hooks"),n=g.join(t,"pre-commit"),r=d.existsSync(e),c=d.existsSync(n),o=c&&d.readFileSync(n,q).includes(A);if(r&&(!c||!o)){k.sync(t),d.writeFileSync(n,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",A].join(y.EOL),q);try{d.chmodSync(n,"777")}catch(i){R("chmod ".concat(n," failed: ").concat(i.message))}_("Create pre-commit hook")}},ae=function(){var e=V(),t=!1!==e.strict,n=e.eslintIgnore,c=e.stylelintIgnore;I().then((function(e){var o=function(n){return new Promise((function(o,i){var a=oe();if(a){var s=e.map((function(e){return e.filename})).filter((function(e){return/^(src|tests)/i.test(e)})).filter((function(e){return{css:/\.cs{2}$/i,less:/\.les{2}$/i,sass:/\.sas{2}$/i,scss:/\.scs{2}$/i}[n].test(e)})).filter((function(e){var t=g.join(B,e);return d.existsSync(t)})).filter((function(e){return T.every((function(t){return!w(e,t,{matchBase:!0})}))})).filter((function(e){return"string"===typeof c?!w(e,c,{matchBase:!0}):c instanceof RegExp?!c.test(e):!Array.isArray(c)||c.every((function(t){return"string"===typeof t?!w(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)}))}));if(s.length)if(s.forEach((function(e){if(e&&d.existsSync(e)){var t=g.extname(e).replace(/^\./,""),n=d.readFileSync(e,q),r=P(n,l({parser:D[t]},G()));d.writeFileSync(e,r,q)}})),_("".concat(n," - ").concat(s.length," files prettier success!")),s.length>=$){var m=[];v.chunk(s,$).forEach((function(e){m.push(new Promise((function(c,o){U({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax","postcss-".concat(n),"--config",a].concat(r(e)),complete:c,close:o,exit:!1})})))}));var u=0,p=function e(){u<m.length?m[u].then((function(){u++,e()})).catch(i):(_("".concat(n," - ").concat(s.length," files stylelint success!")),o())};p()}else s.length&&U({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax","postcss-".concat(n),"--config",a].concat(r(s)),complete:function(){_("".concat(n," - ").concat(s.length," files stylelint success!")),o()},close:i,exit:!1});else o()}else R("\u6ca1\u6709 stylelintrc \u6587\u4ef6\uff0c".concat(n," files prettier fail!")),o()}))},i=function(c){return new Promise((function(o,i){var a=ce();if(a){var s=e.map((function(e){return e.filename})).filter((function(e){return/^(src|tests)/i.test(e)})).filter((function(e){return{js:/\.js$/i,jsx:/\.jsx$/i,ts:/\.ts$/i,tsx:/\.tsx$/i}[c].test(e)})).filter((function(e){var t=g.join(B,e);return d.existsSync(t)})).filter((function(e){return T.every((function(t){return!w(e,t,{matchBase:!0})}))})).filter((function(e){return"string"===typeof n?!w(e,n,{matchBase:!0}):n instanceof RegExp?!n.test(e):!Array.isArray(n)||n.every((function(t){return"string"===typeof t?!w(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)}))}));if(s.length)if(s.forEach((function(e){if(e&&d.existsSync(e)){var t=g.extname(e).replace(/^\./,""),n=d.readFileSync(e,q),r=P(n,l({parser:D[t]},G()));d.writeFileSync(e,r,q)}})),_("".concat(c," - ").concat(s.length," files prettier success!")),s.length>=$){var m=[];v.chunk(s,$).forEach((function(e){m.push(new Promise((function(n,c){U({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",a].concat(r(e)),complete:n,close:c,exit:!1})})))}));var u=0,p=function e(){u<m.length?m[u].then((function(){u++,e()})).catch(i):(_("".concat(c," - ").concat(s.length," files eslint success!")),o())};p()}else s.length&&U({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",a].concat(r(s)),complete:function(){_("".concat(c," - ").concat(s.length," files eslint success!")),o()},close:i,exit:!1});else o()}else R("\u6ca1\u6709 eslintrc \u6587\u4ef6\uff0c".concat(c," files eslint fail!")),o()}))};Q("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),t&&(Q("git commit \u7981\u6b62 lint \u7684 ignore \u884c\u4e3a"),c&&Q("\u901a\u8fc7 .yolkrc \u914d\u7f6e stylelintIgnore: ".concat(c,"\u3002")),n&&Q("\u901a\u8fc7 .yolkrc \u914d\u7f6e eslintIgnore: ".concat(n,"\u3002"))),o("css").then((function(){return o("less")})).then((function(){return o("sass")})).then((function(){return o("scss")})).then((function(){return i("js")})).then((function(){return i("jsx")})).then((function(){return i("ts")})).then((function(){return i("tsx")})).then(C).catch(C)}))},se=function(e){var t=e.mProject,n=e.mPrivateKeyPath,r=e.mVersion,c=e.mDesc,o=e.mRobot,i=e.mQrcodeFormat,a=e.mQrcodeOutputDest,s=e.mPagePath,m=e.mSearchQuery,l=d.existsSync(g.join(B,".git"))?p("git log -1 --pretty=format:%H").toString():"",u=X(),f=u.appid,y=t||g.join(B,"dist"),h=n||g.join(B,"private.".concat(f,".key"));if(d.existsSync(y)){if(d.existsSync(h)){var v=Y(),j=r||v.version||u.version||"1.0.0",S=c||v.description||u.description,x="version: ".concat(j,";").concat(l?" commit: ".concat(l,";"):"").concat(S?" description: ".concat(S,";"):"");l&&K("commit: ".concat(l)),K("dist: ".concat(y)),K("key: ".concat(h)),K("appid: ".concat(f)),K("version: ".concat(j)),K("desc: ".concat(x));var w=new b.Project({appid:f,type:"miniProgram",projectPath:y,privateKeyPath:h,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:f,options:{project:w,version:j,desc:x,setting:u.setting,robot:o,qrcodeFormat:i,qrcodeOutputDest:a,pagePath:s,searchQuery:m}}}throw Error("\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(".concat(h,")"))}throw Error("\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(".concat(y,")"))},me=function(){ie(),process.argv.length>2?S.version(F.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action((function(t,n){var r=e(n),c=r[0],o=r.slice(1),i=t.clone,a=t.template,s=t.docs;if(c)switch(K("yolk version: ".concat(F.version)),K("node version: ".concat(process.version)),K("platform: ".concat(y.platform())),K("memory: ".concat(v.floor(y.freemem()/1024/1024)," MB(").concat(v.floor(y.totalmem()/1024/1024)," MB)")),c){case"init":if(_("yolk ".concat(c," \u5f00\u59cb")),i)if(a){var m=".yolk",u=g.join(B,m);d.existsSync(u)&&E(u,(function(){_("\u7f13\u5b58\u5220\u9664 success! ".concat(u))})),U({command:"git",args:["clone","-b","master","--depth","1",a,m].concat(o)}),M(B,u)}else R("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else H(B);break;case"start":W()?ne()?U({command:"taro",args:["build","--type","tt","--watch"].concat(o)}):re()?U({command:"taro",args:["build","--type","alipay","--watch"].concat(o)}):U({command:"taro",args:["build","--type","weapp","--watch"].concat(o)}):s?U({command:"dumi",args:["dev"].concat(o)}):z()?U({command:"icejs",args:["start","--config",ee()].concat(o)}):Z()?U({command:"max",args:["dev"].concat(o)}):U({command:"umi",args:["dev"].concat(o)});break;case"build":W()?ne()?U({command:"taro",args:["build","--type","tt"].concat(o)}):re()?U({command:"taro",args:["build","--type","alipay"].concat(o)}):U({command:"taro",args:["build","--type","weapp"].concat(o)}):s?U({command:"dumi",args:["build"].concat(o)}):z()?U({command:"icejs",args:["build","--config",ee()].concat(o)}):Z()?U({command:"max",args:["setup"].concat(o),complete:function(){return U({command:"max",args:["build"].concat(o)})},exit:!1}):U({command:"umi",args:["build"].concat(o)});break;case"pre-commit":ae();break;case"test":U({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(o)});break;case"miniapp-upload":case"miniprogram-upload":if(W())if(ne());else if(re());else{var p=se(t),f=p.appid,h=p.options;K("".concat(f,"\u4e0a\u4f20\u5f00\u59cb")),b.upload(l(l({},v.pick(h,["project","version","desc","setting","robot"])),{},{onProgressUpdate:function(e){if(v.isString(e))K("task: ".concat(e));else{var t=e.status,n=e.message;K("task(".concat(t,"): ").concat(n))}}})).then((function(){_("".concat(f,"\u4e0a\u4f20\u5b8c\u6210"))}))}break;case"miniapp-preview":case"miniprogram-preview":if(W())if(ne());else if(re());else{var j=se(t),S=j.appid,x=j.options;K("".concat(S,"\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb")),b.preview(l(l({},v.pick(x,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"])),{},{onProgressUpdate:function(e){if(v.isString(e))K("task: ".concat(e));else{var t=e.status,n=e.message;K("task(".concat(t,"): ").concat(n))}}})).then((function(){_("".concat(S,"\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210"))}))}break;default:J()}})).parse(process.argv):J()};me();
package/lib/yolk.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- var e=Object.create,t=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.getPrototypeOf,n=Object.prototype.hasOwnProperty,c=(e,i,c,o)=>{if(i&&"object"===typeof i||"function"===typeof i)for(let r of a(i))n.call(e,r)||r===c||t(e,r,{get:()=>i[r],enumerable:!(o=s(i,r))||o.enumerable});return e},o=(s,a,n)=>(n=null!=s?e(i(s)):{},c(!a&&s&&s.__esModule?n:t(n,"default",{value:s,enumerable:!0}),s)),r=require("child_process"),l=o(require("@baic/yolk-cli/compiled/commander")),d=o(require("fs")),u=o(require("@baic/yolk-cli/compiled/glob")),m=o(require("inquirer")),f=o(require("lodash")),p=o(require("@baic/yolk-cli/compiled/minimatch")),y=o(require("miniprogram-ci")),g=o(require("@baic/yolk-cli/compiled/mkdirp")),h=o(require("@baic/yolk-cli/compiled/mustache")),b=o(require("ora")),j=o(require("os")),x=o(require("path")),S=require("@baic/yolk-cli/compiled/prettier"),$=o(require("@baic/yolk-cli/compiled/rimraf")),k=o(require("../package.json")),v=require("@baic/yolk-cli/compiled/staged-git-files"),w=process.cwd(),q="##### CREATED BY YOLK #####",P={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},O="utf-8",F=20,B=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/.ice/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/android/**","**/ios/**","**/mock/**","**/yolk*/**"],E=(0,b.default)(),I=e=>e&&E.warn(Buffer.from(e,O).toString()),D=e=>e&&E.fail(Buffer.from(e,O).toString()),_=e=>e&&E.succeed(Buffer.from(e,O).toString()),N=e=>e&&E.info(Buffer.from(e,O).toString()),Q=e=>"win32"===process.platform?`${e}.cmd`:e,R=()=>{_("yolk complete!"),process.exit(0)},T=()=>{I("yolk break!"),process.exit(0)},K=({command:e,args:t,complete:s,close:a,exit:i=!0})=>{const n=(0,r.spawn)(Q(e),t||[],{stdio:"inherit"}).on("close",(e=>{e?(a&&a(),D("yolk close!"),process.exit(e)):(s&&s(),i&&R())}));process.on("SIGINT",(()=>{l.default.runningCommand&&l.default.runningCommand.kill("SIGKILL"),n.kill(),T()}))},L=(e,t,s)=>{m.default.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"web big screen template(umi framework)",value:"umi-web-screen"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"mobile HBuilderX h5+app template(umi framework)",value:"umi-mobile-h5+app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"web template(ice framework)",value:"ice-web"},{name:"web big screen template(ice framework)",value:"ice-web-screen"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"mobile HBuilderX h5+app template(ice framework)",value:"ice-mobile-h5+app"},{name:"mobile native template(ice framework)",value:"ice-mobile-native"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:x.default.basename(x.default.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:"default",choices:[{name:"\u9ed8\u8ba4\u5b89\u88c5",value:"default"},{name:"\u8df3\u8fc7\u5b89\u88c5",value:!1},{name:"pnpm install",value:"pnpm"},{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"}]}]).then((a=>{const i={projectName:a.projectName,dependenciesInstallType:a.dependenciesInstallType,yolkVersion:k.default.version};t||(t=x.default.join(__dirname,`../templates/${a.type}`)),_(`\u590d\u5236\u6a21\u7248 ${x.default.basename(t)}`);const n=u.default.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(n.forEach((s=>{if(!t)return;const a=x.default.join(t,s);if(!d.default.statSync(a).isDirectory())if(s.endsWith(".tpl")){const t=d.default.readFileSync(a,O),n=x.default.join(e,s.replace(/\.tpl$/,"")),c=h.default.render(t,i);g.default.sync(x.default.dirname(n)),_(`\u521b\u5efa ${x.default.relative(e,n)}`),d.default.writeFileSync(n,c,O)}else{_(`\u521b\u5efa ${s}`);const t=x.default.join(e,s);g.default.sync(x.default.dirname(t)),d.default.copyFileSync(a,t)}})),_("\u590d\u5236\u6a21\u7248 success!"),s&&d.default.existsSync(t)&&(0,$.default)(t,(()=>{_(`\u7f13\u5b58\u5220\u9664 success! ${x.default.basename(t||"")}`)})),a.dependenciesInstallType)switch(_("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),a.dependenciesInstallType){case"default":case"pnpm":K({command:"pnpm",args:["install"]});break;case"yarn":K({command:"yarn",args:["install"]});break;case"npm":K({command:"npm",args:["install"]});break;default:}_("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},A=(e,t)=>L(e,t,!0),J=()=>{const e=u.default.sync("*.yolkrc*",{cwd:w,dot:!0});if(!e.length)return{};const t=x.default.join(w,e[0]);if(!d.default.existsSync(t))return{};try{return JSON.parse(d.default.readFileSync(t,O))||{}}catch(s){return D(s.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},C=()=>{const e=x.default.join(w,".prettierrc");if(d.default.existsSync(e))try{return JSON.parse(d.default.readFileSync(e,O))||{}}catch(t){return D(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return require("./.prettierrc")},H=()=>{const e=x.default.join(w,"project.config.json");if(!d.default.existsSync(e))return{};try{return JSON.parse(d.default.readFileSync(e,O))||{}}catch(t){return D(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},U=()=>{const e=x.default.join(w,"package.json");if(!d.default.existsSync(e))return{};try{return JSON.parse(d.default.readFileSync(e,O))||{}}catch(t){return D(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},M=()=>d.default.existsSync(x.default.join(w,"project.config.json")),V=()=>d.default.existsSync(x.default.join(w,".icerc.ts"))||d.default.existsSync(x.default.join(w,".icerc.js"))||d.default.existsSync(x.default.join(w,".ice.ts"))||d.default.existsSync(x.default.join(w,".ice.js")),G=()=>{let e=d.default.existsSync(x.default.join(w,"node_modules/.bin/max"));if(!e)try{e=d.default.existsSync(require.resolve("@umijs/max"))}catch(t){}if(!e)try{e=/umi@4\.(\d+)\.(\d+)/.test((0,r.execSync)("umi -v").toString())}catch(t){}if(!e){const s=x.default.join(w,"node_modules","umi","package.json");if(d.default.existsSync(s))try{const t=JSON.parse(d.default.readFileSync(s,O))||{};e=t.version&&+t.version.split(".")[0]>3}catch(t){}}return e},X=()=>d.default.existsSync(x.default.join(w,".icerc.ts"))?".icerc.ts":d.default.existsSync(x.default.join(w,".icerc.js"))?".icerc.js":d.default.existsSync(x.default.join(w,".ice.ts"))?".ice.ts":".ice.js",Y=()=>{const e=x.default.join(w,"project.config.json");if(d.default.existsSync(e)){const t=require(e);return t.appid}return""},W=()=>d.default.existsSync(x.default.join(w,"project.tt.json"))&&0===Y().indexOf("tt"),z=()=>0===Y().indexOf("20"),Z=()=>{const e=J();let t="";try{t=require.resolve("@baic/eslint-config-yolk")}catch(i){}const s=u.default.sync("*.eslintrc*",{cwd:w,dot:!0}),a=s[0];return!1===e.strict&&a&&d.default.existsSync(a)?a:d.default.existsSync(t)?t:a},ee=()=>{const e=J();let t="";try{t=require.resolve("@baic/stylelint-config-yolk")}catch(i){}const s=u.default.sync("*.stylelintrc*",{cwd:w,dot:!0}),a=s[0];return!1===e.strict&&a&&d.default.existsSync(a)?a:d.default.existsSync(t)?t:a},te=()=>{const e=x.default.join(w,".git/"),t=x.default.join(w,".git/hooks"),s=x.default.join(t,"pre-commit"),a=d.default.existsSync(e),i=d.default.existsSync(s),n=i&&d.default.readFileSync(s,O).includes(q);if(a&&(!i||!n)){g.default.sync(t),d.default.writeFileSync(s,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",q].join(j.default.EOL),O);try{d.default.chmodSync(s,"777")}catch(c){D(`chmod ${s} failed: ${c.message}`)}_("Create pre-commit hook")}},se=()=>{const e=J(),t=!1!==e.strict,s=e.eslintIgnore,a=e.stylelintIgnore;v().then((e=>{const i=s=>new Promise(((i,n)=>{const c=ee();if(c){const o=e.map((e=>e.filename)).filter((e=>/^(src|tests)/i.test(e))).filter((e=>({css:/\.cs{2}$/i,less:/\.les{2}$/i,sass:/\.sas{2}$/i,scss:/\.scs{2}$/i}[s].test(e)))).filter((e=>{const t=x.default.join(w,e);return d.default.existsSync(t)})).filter((e=>B.every((t=>!(0,p.default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof a?!(0,p.default)(e,a,{matchBase:!0}):a instanceof RegExp?!a.test(e):!Array.isArray(a)||a.every((t=>"string"===typeof t?!(0,p.default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(o.length)if(o.forEach((e=>{if(e&&d.default.existsSync(e)){const t=x.default.extname(e).replace(/^\./,""),s=d.default.readFileSync(e,O),a=(0,S.format)(s,{parser:P[t],...C()});d.default.writeFileSync(e,a,O)}})),_(`${s} - ${o.length} files prettier success!`),o.length>=F){const e=[];f.default.chunk(o,F).forEach((a=>{e.push(new Promise(((e,i)=>{K({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax",`postcss-${s}`,"--config",c,...a],complete:e,close:i,exit:!1})})))}));let a=0;const r=()=>{a<e.length?e[a].then((()=>{a++,r()})).catch(n):(_(`${s} - ${o.length} files stylelint success!`),i())};r()}else o.length&&K({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax",`postcss-${s}`,"--config",c,...o],complete:()=>{_(`${s} - ${o.length} files stylelint success!`),i()},close:n,exit:!1});else i()}else D(`\u6ca1\u6709 stylelintrc \u6587\u4ef6\uff0c${s} files prettier fail!`),i()})),n=a=>new Promise(((i,n)=>{const c=Z();if(c){const o=e.map((e=>e.filename)).filter((e=>/^(src|tests)/i.test(e))).filter((e=>({js:/\.js$/i,jsx:/\.jsx$/i,ts:/\.ts$/i,tsx:/\.tsx$/i}[a].test(e)))).filter((e=>{const t=x.default.join(w,e);return d.default.existsSync(t)})).filter((e=>B.every((t=>!(0,p.default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof s?!(0,p.default)(e,s,{matchBase:!0}):s instanceof RegExp?!s.test(e):!Array.isArray(s)||s.every((t=>"string"===typeof t?!(0,p.default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(o.length)if(o.forEach((e=>{if(e&&d.default.existsSync(e)){const t=x.default.extname(e).replace(/^\./,""),s=d.default.readFileSync(e,O),a=(0,S.format)(s,{parser:P[t],...C()});d.default.writeFileSync(e,a,O)}})),_(`${a} - ${o.length} files prettier success!`),o.length>=F){const e=[];f.default.chunk(o,F).forEach((s=>{e.push(new Promise(((e,a)=>{K({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",c,...s],complete:e,close:a,exit:!1})})))}));let s=0;const r=()=>{s<e.length?e[s].then((()=>{s++,r()})).catch(n):(_(`${a} - ${o.length} files eslint success!`),i())};r()}else o.length&&K({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",c,...o],complete:()=>{_(`${a} - ${o.length} files eslint success!`),i()},close:n,exit:!1});else i()}else D(`\u6ca1\u6709 eslintrc \u6587\u4ef6\uff0c${a} files eslint fail!`),i()}));I("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),t&&(I("git commit \u7981\u6b62 lint \u7684 ignore \u884c\u4e3a"),a&&I(`\u901a\u8fc7 .yolkrc \u914d\u7f6e stylelintIgnore: ${a}\u3002`),s&&I(`\u901a\u8fc7 .yolkrc \u914d\u7f6e eslintIgnore: ${s}\u3002`)),i("css").then((()=>i("less"))).then((()=>i("sass"))).then((()=>i("scss"))).then((()=>n("js"))).then((()=>n("jsx"))).then((()=>n("ts"))).then((()=>n("tsx"))).then(R).catch(R)}))},ae=({mProject:e,mPrivateKeyPath:t,mVersion:s,mDesc:a,mRobot:i,mQrcodeFormat:n,mQrcodeOutputDest:c,mPagePath:o,mSearchQuery:l})=>{const u=d.default.existsSync(x.default.join(w,".git"))?(0,r.execSync)("git log -1 --pretty=format:%H").toString():"",m=H(),f=m.appid,p=e||x.default.join(w,"dist"),g=t||x.default.join(w,`private.${f}.key`);if(d.default.existsSync(p)){if(d.default.existsSync(g)){const e=U(),t=s||e.version||m.version||"1.0.0",r=a||e.description||m.description,d=`version: ${t};${u?` commit: ${u};`:""}${r?` description: ${r};`:""}`;u&&N(`commit: ${u}`),N(`dist: ${p}`),N(`key: ${g}`),N(`appid: ${f}`),N(`version: ${t}`),N(`desc: ${d}`);const h=new y.Project({appid:f,type:"miniProgram",projectPath:p,privateKeyPath:g,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:f,options:{project:h,version:t,desc:d,setting:m.setting,robot:i,qrcodeFormat:n,qrcodeOutputDest:c,pagePath:o,searchQuery:l}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${p})`)},ie=()=>{te(),process.argv.length>2?l.default.version(k.default.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((e,t)=>{const[s,...a]=t,{clone:i,template:n,docs:c}=e;if(s)switch(N(`yolk version: ${k.default.version}`),N(`node version: ${process.version}`),N(`platform: ${j.default.platform()}`),N(`memory: ${f.default.floor(j.default.freemem()/1024/1024)} MB(${f.default.floor(j.default.totalmem()/1024/1024)} MB)`),s){case"init":if(_(`yolk ${s} \u5f00\u59cb`),i)if(n){const e=".yolk",t=x.default.join(w,e);d.default.existsSync(t)&&(0,$.default)(t,(()=>{_(`\u7f13\u5b58\u5220\u9664 success! ${t}`)})),K({command:"git",args:["clone","-b","master","--depth","1",n,e].concat(a)}),A(w,t)}else D("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else L(w);break;case"start":M()?W()?K({command:"taro",args:["build","--type","tt","--watch"].concat(a)}):z()?K({command:"taro",args:["build","--type","alipay","--watch"].concat(a)}):K({command:"taro",args:["build","--type","weapp","--watch"].concat(a)}):c?K({command:"dumi",args:["dev"].concat(a)}):V()?K({command:"icejs",args:["start","--config",X()].concat(a)}):G()?K({command:"max",args:["dev"].concat(a)}):K({command:"umi",args:["dev"].concat(a)});break;case"build":M()?W()?K({command:"taro",args:["build","--type","tt"].concat(a)}):z()?K({command:"taro",args:["build","--type","alipay"].concat(a)}):K({command:"taro",args:["build","--type","weapp"].concat(a)}):c?K({command:"dumi",args:["build"].concat(a)}):V()?K({command:"icejs",args:["build","--config",X()].concat(a)}):G()?K({command:"max",args:["setup"].concat(a),complete:()=>K({command:"max",args:["build"].concat(a)}),exit:!1}):K({command:"umi",args:["build"].concat(a)});break;case"pre-commit":se();break;case"test":K({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(a)});break;case"miniapp-upload":case"miniprogram-upload":if(M())if(W());else if(z());else{const{appid:t,options:s}=ae(e);N(`${t}\u4e0a\u4f20\u5f00\u59cb`),y.upload({...f.default.pick(s,["project","version","desc","setting","robot"]),onProgressUpdate:e=>{if(f.default.isString(e))N(`task: ${e}`);else{const{status:t,message:s}=e;N(`task(${t}): ${s}`)}}}).then((()=>{_(`${t}\u4e0a\u4f20\u5b8c\u6210`)}))}break;case"miniapp-preview":case"miniprogram-preview":if(M())if(W());else if(z());else{const{appid:t,options:s}=ae(e);N(`${t}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),y.preview({...f.default.pick(s,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"]),onProgressUpdate:e=>{if(f.default.isString(e))N(`task: ${e}`);else{const{status:t,message:s}=e;N(`task(${t}): ${s}`)}}}).then((()=>{_(`${t}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}))}break;default:T()}})).parse(process.argv):T()};ie();
2
+ var e=Object.create,t=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.getPrototypeOf,n=Object.prototype.hasOwnProperty,r=(e,i,r,o)=>{if(i&&"object"===typeof i||"function"===typeof i)for(let c of a(i))n.call(e,c)||c===r||t(e,c,{get:()=>i[c],enumerable:!(o=s(i,c))||o.enumerable});return e},o=(s,a,n)=>(n=null!=s?e(i(s)):{},r(!a&&s&&s.__esModule?n:t(n,"default",{value:s,enumerable:!0}),s)),c=require("child_process"),l=o(require("fs")),d=o(require("os")),u=o(require("path")),m=o(require("inquirer")),f=o(require("lodash")),p=o(require("miniprogram-ci")),y=o(require("ora")),g=o(require("../compiled/commander")),h=o(require("../compiled/glob")),b=o(require("../compiled/minimatch")),j=o(require("../compiled/mkdirp")),x=o(require("../compiled/mustache")),S=require("../compiled/prettier"),$=o(require("../compiled/rimraf")),v=o(require("../package.json")),k=require("../compiled/staged-git-files"),w=process.cwd(),q="##### CREATED BY YOLK #####",P={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},O="utf-8",F=20,B=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/.ice/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/android/**","**/ios/**","**/mock/**","**/yolk*/**"],E=(0,y.default)(),I=e=>e&&E.warn(Buffer.from(e,O).toString()),D=e=>e&&E.fail(Buffer.from(e,O).toString()),_=e=>e&&E.succeed(Buffer.from(e,O).toString()),N=e=>e&&E.info(Buffer.from(e,O).toString()),Q=e=>"win32"===process.platform?`${e}.cmd`:e,R=()=>{_("yolk complete!"),process.exit(0)},T=()=>{I("yolk break!"),process.exit(0)},K=({command:e,args:t,complete:s,close:a,exit:i=!0})=>{const n=(0,c.spawn)(Q(e),t||[],{stdio:"inherit"}).on("close",(e=>{e?(a&&a(),D("yolk close!"),process.exit(e)):(s&&s(),i&&R())}));process.on("SIGINT",(()=>{g.default.runningCommand&&g.default.runningCommand.kill("SIGKILL"),n.kill(),T()}))},L=(e,t,s)=>{m.default.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"web big screen template(umi framework)",value:"umi-web-screen"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"mobile HBuilderX h5+app template(umi framework)",value:"umi-mobile-h5+app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"web template(ice framework)",value:"ice-web"},{name:"web big screen template(ice framework)",value:"ice-web-screen"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"mobile HBuilderX h5+app template(ice framework)",value:"ice-mobile-h5+app"},{name:"mobile native template(ice framework)",value:"ice-mobile-native"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:u.default.basename(u.default.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:"default",choices:[{name:"\u9ed8\u8ba4\u5b89\u88c5",value:"default"},{name:"\u8df3\u8fc7\u5b89\u88c5",value:!1},{name:"pnpm install",value:"pnpm"},{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"}]}]).then((a=>{const i={projectName:a.projectName,dependenciesInstallType:a.dependenciesInstallType,yolkVersion:v.default.version};t||(t=u.default.join(__dirname,`../templates/${a.type}`)),_(`\u590d\u5236\u6a21\u7248 ${u.default.basename(t)}`);const n=h.default.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(n.forEach((s=>{if(!t)return;const a=u.default.join(t,s);if(!l.default.statSync(a).isDirectory())if(s.endsWith(".tpl")){const t=l.default.readFileSync(a,O),n=u.default.join(e,s.replace(/\.tpl$/,"")),r=x.default.render(t,i);j.default.sync(u.default.dirname(n)),_(`\u521b\u5efa ${u.default.relative(e,n)}`),l.default.writeFileSync(n,r,O)}else{_(`\u521b\u5efa ${s}`);const t=u.default.join(e,s);j.default.sync(u.default.dirname(t)),l.default.copyFileSync(a,t)}})),_("\u590d\u5236\u6a21\u7248 success!"),s&&l.default.existsSync(t)&&(0,$.default)(t,(()=>{_(`\u7f13\u5b58\u5220\u9664 success! ${u.default.basename(t||"")}`)})),a.dependenciesInstallType)switch(_("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),a.dependenciesInstallType){case"default":case"pnpm":K({command:"pnpm",args:["install"]});break;case"yarn":K({command:"yarn",args:["install"]});break;case"npm":K({command:"npm",args:["install"]});break;default:}_("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},A=(e,t)=>L(e,t,!0),J=()=>{const e=h.default.sync("*.yolkrc*",{cwd:w,dot:!0});if(!e.length)return{};const t=u.default.join(w,e[0]);if(!l.default.existsSync(t))return{};try{return JSON.parse(l.default.readFileSync(t,O))||{}}catch(s){return D(s.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},C=()=>{const e=u.default.join(w,".prettierrc");if(l.default.existsSync(e))try{return JSON.parse(l.default.readFileSync(e,O))||{}}catch(t){return D(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}return require("./.prettierrc")},H=()=>{const e=u.default.join(w,"project.config.json");if(!l.default.existsSync(e))return{};try{return JSON.parse(l.default.readFileSync(e,O))||{}}catch(t){return D(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},U=()=>{const e=u.default.join(w,"package.json");if(!l.default.existsSync(e))return{};try{return JSON.parse(l.default.readFileSync(e,O))||{}}catch(t){return D(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},M=()=>l.default.existsSync(u.default.join(w,"project.config.json")),V=()=>l.default.existsSync(u.default.join(w,".icerc.ts"))||l.default.existsSync(u.default.join(w,".icerc.js"))||l.default.existsSync(u.default.join(w,".ice.ts"))||l.default.existsSync(u.default.join(w,".ice.js")),G=()=>{let e=l.default.existsSync(u.default.join(w,"node_modules/.bin/max"));if(!e)try{e=l.default.existsSync(require.resolve("@umijs/max"))}catch(t){}if(!e)try{e=/umi@4\.(\d+)\.(\d+)/.test((0,c.execSync)("umi -v").toString())}catch(t){}if(!e){const s=u.default.join(w,"node_modules","umi","package.json");if(l.default.existsSync(s))try{const t=JSON.parse(l.default.readFileSync(s,O))||{};e=t.version&&+t.version.split(".")[0]>3}catch(t){}}return e},X=()=>l.default.existsSync(u.default.join(w,".icerc.ts"))?".icerc.ts":l.default.existsSync(u.default.join(w,".icerc.js"))?".icerc.js":l.default.existsSync(u.default.join(w,".ice.ts"))?".ice.ts":".ice.js",Y=()=>{const e=u.default.join(w,"project.config.json");if(l.default.existsSync(e)){const t=require(e);return t.appid}return""},W=()=>l.default.existsSync(u.default.join(w,"project.tt.json"))&&0===Y().indexOf("tt"),z=()=>0===Y().indexOf("20"),Z=()=>{const e=J();let t="";try{t=require.resolve("@baic/eslint-config-yolk")}catch(i){}const s=h.default.sync("*.eslintrc*",{cwd:w,dot:!0}),a=s[0];return!1===e.strict&&a&&l.default.existsSync(a)?a:l.default.existsSync(t)?t:a},ee=()=>{const e=J();let t="";try{t=require.resolve("@baic/stylelint-config-yolk")}catch(i){}const s=h.default.sync("*.stylelintrc*",{cwd:w,dot:!0}),a=s[0];return!1===e.strict&&a&&l.default.existsSync(a)?a:l.default.existsSync(t)?t:a},te=()=>{const e=u.default.join(w,".git/"),t=u.default.join(w,".git/hooks"),s=u.default.join(t,"pre-commit"),a=l.default.existsSync(e),i=l.default.existsSync(s),n=i&&l.default.readFileSync(s,O).includes(q);if(a&&(!i||!n)){j.default.sync(t),l.default.writeFileSync(s,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",q].join(d.default.EOL),O);try{l.default.chmodSync(s,"777")}catch(r){D(`chmod ${s} failed: ${r.message}`)}_("Create pre-commit hook")}},se=()=>{const e=J(),t=!1!==e.strict,s=e.eslintIgnore,a=e.stylelintIgnore;k().then((e=>{const i=s=>new Promise(((i,n)=>{const r=ee();if(r){const o=e.map((e=>e.filename)).filter((e=>/^(src|tests)/i.test(e))).filter((e=>({css:/\.cs{2}$/i,less:/\.les{2}$/i,sass:/\.sas{2}$/i,scss:/\.scs{2}$/i}[s].test(e)))).filter((e=>{const t=u.default.join(w,e);return l.default.existsSync(t)})).filter((e=>B.every((t=>!(0,b.default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof a?!(0,b.default)(e,a,{matchBase:!0}):a instanceof RegExp?!a.test(e):!Array.isArray(a)||a.every((t=>"string"===typeof t?!(0,b.default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(o.length)if(o.forEach((e=>{if(e&&l.default.existsSync(e)){const t=u.default.extname(e).replace(/^\./,""),s=l.default.readFileSync(e,O),a=(0,S.format)(s,{parser:P[t],...C()});l.default.writeFileSync(e,a,O)}})),_(`${s} - ${o.length} files prettier success!`),o.length>=F){const e=[];f.default.chunk(o,F).forEach((a=>{e.push(new Promise(((e,i)=>{K({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax",`postcss-${s}`,"--config",r,...a],complete:e,close:i,exit:!1})})))}));let a=0;const c=()=>{a<e.length?e[a].then((()=>{a++,c()})).catch(n):(_(`${s} - ${o.length} files stylelint success!`),i())};c()}else o.length&&K({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--custom-syntax",`postcss-${s}`,"--config",r,...o],complete:()=>{_(`${s} - ${o.length} files stylelint success!`),i()},close:n,exit:!1});else i()}else D(`\u6ca1\u6709 stylelintrc \u6587\u4ef6\uff0c${s} files prettier fail!`),i()})),n=a=>new Promise(((i,n)=>{const r=Z();if(r){const o=e.map((e=>e.filename)).filter((e=>/^(src|tests)/i.test(e))).filter((e=>({js:/\.js$/i,jsx:/\.jsx$/i,ts:/\.ts$/i,tsx:/\.tsx$/i}[a].test(e)))).filter((e=>{const t=u.default.join(w,e);return l.default.existsSync(t)})).filter((e=>B.every((t=>!(0,b.default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof s?!(0,b.default)(e,s,{matchBase:!0}):s instanceof RegExp?!s.test(e):!Array.isArray(s)||s.every((t=>"string"===typeof t?!(0,b.default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(o.length)if(o.forEach((e=>{if(e&&l.default.existsSync(e)){const t=u.default.extname(e).replace(/^\./,""),s=l.default.readFileSync(e,O),a=(0,S.format)(s,{parser:P[t],...C()});l.default.writeFileSync(e,a,O)}})),_(`${a} - ${o.length} files prettier success!`),o.length>=F){const e=[];f.default.chunk(o,F).forEach((s=>{e.push(new Promise(((e,a)=>{K({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",r,...s],complete:e,close:a,exit:!1})})))}));let s=0;const c=()=>{s<e.length?e[s].then((()=>{s++,c()})).catch(n):(_(`${a} - ${o.length} files eslint success!`),i())};c()}else o.length&&K({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",r,...o],complete:()=>{_(`${a} - ${o.length} files eslint success!`),i()},close:n,exit:!1});else i()}else D(`\u6ca1\u6709 eslintrc \u6587\u4ef6\uff0c${a} files eslint fail!`),i()}));I("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),t&&(I("git commit \u7981\u6b62 lint \u7684 ignore \u884c\u4e3a"),a&&I(`\u901a\u8fc7 .yolkrc \u914d\u7f6e stylelintIgnore: ${a}\u3002`),s&&I(`\u901a\u8fc7 .yolkrc \u914d\u7f6e eslintIgnore: ${s}\u3002`)),i("css").then((()=>i("less"))).then((()=>i("sass"))).then((()=>i("scss"))).then((()=>n("js"))).then((()=>n("jsx"))).then((()=>n("ts"))).then((()=>n("tsx"))).then(R).catch(R)}))},ae=({mProject:e,mPrivateKeyPath:t,mVersion:s,mDesc:a,mRobot:i,mQrcodeFormat:n,mQrcodeOutputDest:r,mPagePath:o,mSearchQuery:d})=>{const m=l.default.existsSync(u.default.join(w,".git"))?(0,c.execSync)("git log -1 --pretty=format:%H").toString():"",f=H(),y=f.appid,g=e||u.default.join(w,"dist"),h=t||u.default.join(w,`private.${y}.key`);if(l.default.existsSync(g)){if(l.default.existsSync(h)){const e=U(),t=s||e.version||f.version||"1.0.0",c=a||e.description||f.description,l=`version: ${t};${m?` commit: ${m};`:""}${c?` description: ${c};`:""}`;m&&N(`commit: ${m}`),N(`dist: ${g}`),N(`key: ${h}`),N(`appid: ${y}`),N(`version: ${t}`),N(`desc: ${l}`);const u=new p.Project({appid:y,type:"miniProgram",projectPath:g,privateKeyPath:h,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:y,options:{project:u,version:t,desc:l,setting:f.setting,robot:i,qrcodeFormat:n,qrcodeOutputDest:r,pagePath:o,searchQuery:d}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${h})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${g})`)},ie=()=>{te(),process.argv.length>2?g.default.version(v.default.version).usage("[command] [options]").option("--clone","\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248").option("--template <template>","\u6a21\u7248\u540d\u79f0\u6216\u8005clone\u6a21\u5f0f\u7684git\u5730\u5740").option("--docs","\u542f\u52a8\u6587\u6863\u6a21\u5f0f").option("--mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6").option("--mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--mQrcodeFormat <qrcodeFormat>",'\u5c0f\u7a0b\u5e8f\u9884\u89c8\u8fd4\u56de\u4e8c\u7ef4\u7801\u6587\u4ef6\u7684\u683c\u5f0f "image" \u6216 "base64"\uff0c \u9ed8\u8ba4\u503c "terminal" \u4f9b\u8c03\u8bd5\u7528').option("--mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570").action(((e,t)=>{const[s,...a]=t,{clone:i,template:n,docs:r}=e;if(s)switch(N(`yolk version: ${v.default.version}`),N(`node version: ${process.version}`),N(`platform: ${d.default.platform()}`),N(`memory: ${f.default.floor(d.default.freemem()/1024/1024)} MB(${f.default.floor(d.default.totalmem()/1024/1024)} MB)`),s){case"init":if(_(`yolk ${s} \u5f00\u59cb`),i)if(n){const e=".yolk",t=u.default.join(w,e);l.default.existsSync(t)&&(0,$.default)(t,(()=>{_(`\u7f13\u5b58\u5220\u9664 success! ${t}`)})),K({command:"git",args:["clone","-b","master","--depth","1",n,e].concat(a)}),A(w,t)}else D("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else L(w);break;case"start":M()?W()?K({command:"taro",args:["build","--type","tt","--watch"].concat(a)}):z()?K({command:"taro",args:["build","--type","alipay","--watch"].concat(a)}):K({command:"taro",args:["build","--type","weapp","--watch"].concat(a)}):r?K({command:"dumi",args:["dev"].concat(a)}):V()?K({command:"icejs",args:["start","--config",X()].concat(a)}):G()?K({command:"max",args:["dev"].concat(a)}):K({command:"umi",args:["dev"].concat(a)});break;case"build":M()?W()?K({command:"taro",args:["build","--type","tt"].concat(a)}):z()?K({command:"taro",args:["build","--type","alipay"].concat(a)}):K({command:"taro",args:["build","--type","weapp"].concat(a)}):r?K({command:"dumi",args:["build"].concat(a)}):V()?K({command:"icejs",args:["build","--config",X()].concat(a)}):G()?K({command:"max",args:["setup"].concat(a),complete:()=>K({command:"max",args:["build"].concat(a)}),exit:!1}):K({command:"umi",args:["build"].concat(a)});break;case"pre-commit":se();break;case"test":K({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(a)});break;case"miniapp-upload":case"miniprogram-upload":if(M())if(W());else if(z());else{const{appid:t,options:s}=ae(e);N(`${t}\u4e0a\u4f20\u5f00\u59cb`),p.upload({...f.default.pick(s,["project","version","desc","setting","robot"]),onProgressUpdate:e=>{if(f.default.isString(e))N(`task: ${e}`);else{const{status:t,message:s}=e;N(`task(${t}): ${s}`)}}}).then((()=>{_(`${t}\u4e0a\u4f20\u5b8c\u6210`)}))}break;case"miniapp-preview":case"miniprogram-preview":if(M())if(W());else if(z());else{const{appid:t,options:s}=ae(e);N(`${t}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),p.preview({...f.default.pick(s,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"]),onProgressUpdate:e=>{if(f.default.isString(e))N(`task: ${e}`);else{const{status:t,message:s}=e;N(`task(${t}): ${s}`)}}}).then((()=>{_(`${t}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}))}break;default:T()}})).parse(process.argv):T()};ie();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baic/yolk-cli",
3
- "version": "2.1.0-alpha.64",
3
+ "version": "2.1.0-alpha.66",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/303394539/yolk.git"
@@ -30,6 +30,7 @@
30
30
  "inquirer": "~8.x",
31
31
  "lodash": "~4.x",
32
32
  "miniprogram-ci": "~1.8.x",
33
+ "ora": "5.4.1",
33
34
  "v8-compile-cache": "~2.3.x"
34
35
  },
35
36
  "devDependencies": {
@@ -51,5 +52,5 @@
51
52
  "publishConfig": {
52
53
  "access": "public"
53
54
  },
54
- "gitHead": "771dc801940c3a36715b24f3ea2979d21fcb9646"
55
+ "gitHead": "f54638e35b50e255879bcec2c8b6ea4517348a64"
55
56
  }