@baic/yolk-cli 2.0.1-alpha.52 → 2.1.0-alpha.2

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/index.js CHANGED
@@ -44,9 +44,9 @@ import l from "commander";
44
44
 
45
45
  import d from "inquirer";
46
46
 
47
- import { spawn as u, execSync as y } from "child_process";
47
+ import { spawn as y, execSync as f } from "child_process";
48
48
 
49
- import f from "ora";
49
+ import u from "ora";
50
50
 
51
51
  import g from "glob";
52
52
 
@@ -71,12 +71,12 @@ const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY
71
71
  sass: "scss",
72
72
  scss: "scss",
73
73
  css: "css"
74
- }, E = "utf-8", F = 60, B = [ "**/node_modules/**", "**/.umi/**", "**/.umi-production/**", "**/build/**", "**/dist/**", "**/lib/**", "**/es/**", "**/public/**", "**/assets/**", "**/h5+app/**", "**/mock/**", "**/yolk/**", "**/yolk-web/**", "**/yolk-web-ui/**", "**/yolk-mobile/**", "**/yolk-mobile-ui/**", "**/yolk-miniprogram/**", "**/yolk-miniprogram-ui/**" ], D = f(), q = e => e && D.warn(Buffer.from(e, E).toString()), I = e => e && D.fail(Buffer.from(e, E).toString()), Q = e => e && D.succeed(Buffer.from(e, E).toString()), R = e => e && D.info(Buffer.from(e, E).toString()), T = e => "win32" === process.platform ? `${e}.cmd` : e, L = () => {
74
+ }, E = "utf-8", F = 60, B = [ "**/node_modules/**", "**/.umi/**", "**/.umi-production/**", "**/build/**", "**/dist/**", "**/lib/**", "**/es/**", "**/public/**", "**/assets/**", "**/h5+app/**", "**/mock/**", "**/yolk/**", "**/yolk-web/**", "**/yolk-web-ui/**", "**/yolk-mobile/**", "**/yolk-mobile-ui/**", "**/yolk-miniprogram/**", "**/yolk-miniprogram-ui/**" ], D = u(), q = e => e && D.warn(Buffer.from(e, E).toString()), I = e => e && D.fail(Buffer.from(e, E).toString()), Q = e => e && D.succeed(Buffer.from(e, E).toString()), R = e => e && D.info(Buffer.from(e, E).toString()), T = e => "win32" === process.platform ? `${e}.cmd` : e, L = () => {
75
75
  Q("yolk complete!"), process.exit(0);
76
76
  }, N = () => {
77
77
  q("yolk break!"), process.exit(0);
78
78
  }, _ = ({command: e, args: t, complete: s, close: o, exit: r = !0}) => {
79
- const i = u(T(e), t || [], {
79
+ const i = y(T(e), t || [], {
80
80
  stdio: "inherit"
81
81
  }).on("close", (e => {
82
82
  e ? (o && o(), I("yolk close!"), process.exit(e)) : (s && s(), r && L());
@@ -351,23 +351,23 @@ const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY
351
351
  r.then(n);
352
352
  }));
353
353
  }, se = ({mProject: e, mPrivateKeyPath: t, mVersion: s, mDesc: o, mRobot: r, mQrcodeFormat: i, mQrcodeOutputDest: n, mPagePath: c, mSearchQuery: p}) => {
354
- const l = a.existsSync(m.join($, ".git")) ? y("git log -1 --pretty=format:%H").toString() : "", d = M(), u = d.appid, f = e || m.join($, "dist"), g = t || m.join($, `private.${u}.key`);
355
- if (a.existsSync(f)) {
354
+ const l = a.existsSync(m.join($, ".git")) ? f("git log -1 --pretty=format:%H").toString() : "", d = M(), y = d.appid, u = e || m.join($, "dist"), g = t || m.join($, `private.${y}.key`);
355
+ if (a.existsSync(u)) {
356
356
  if (a.existsSync(g)) {
357
357
  const e = U(), t = s || e.version || d.version || "1.0.0", a = o || e.description || d.description, m = `version: ${t};${l ? ` commit: ${l};` : ""}${a ? ` description: ${a};` : ""}`;
358
- l && R(`commit: ${l}`), R(`dist: ${f}`), R(`key: ${g}`), R(`appid: ${u}`), R(`version: ${t}`),
358
+ l && R(`commit: ${l}`), R(`dist: ${u}`), R(`key: ${g}`), R(`appid: ${y}`), R(`version: ${t}`),
359
359
  R(`desc: ${m}`);
360
- const y = new x.Project({
361
- appid: u,
360
+ const f = new x.Project({
361
+ appid: y,
362
362
  type: "miniProgram",
363
- projectPath: f,
363
+ projectPath: u,
364
364
  privateKeyPath: g,
365
365
  ignores: [ "node_modules/**/*", "**/*.txt", "**/*.key", "**/*.less", "**/*.sass", "**/*.scss", "**/*.css", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.md" ]
366
366
  });
367
367
  return {
368
- appid: u,
368
+ appid: y,
369
369
  options: {
370
- project: y,
370
+ project: f,
371
371
  version: t,
372
372
  desc: m,
373
373
  setting: d.setting,
@@ -381,21 +381,21 @@ const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY
381
381
  }
382
382
  throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`);
383
383
  }
384
- throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${f})`);
384
+ throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${u})`);
385
385
  }, oe = () => {
386
386
  ee(), process.argv.length > 2 ? l.version(v.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(((t, i) => {
387
- const n = e(i), l = n[0], d = n.slice(1), u = t.clone, y = t.template, f = t.docs;
387
+ const n = e(i), l = n[0], d = n.slice(1), y = t.clone, f = t.template, u = t.docs;
388
388
  if (l) switch (R(`yolk version: ${v.version}`), R(`node version: ${process.version}`),
389
389
  R(`platform: ${p.platform()}`), R(`memory: ${r(p.freemem() / 1024 / 1024)} MB(${r(p.totalmem() / 1024 / 1024)} MB)`),
390
390
  l) {
391
391
  case "init":
392
- if (Q(`yolk ${l} \u5f00\u59cb`), u) if (y) {
392
+ if (Q(`yolk ${l} \u5f00\u59cb`), y) if (f) {
393
393
  const e = ".yolk", t = m.join($, e);
394
394
  a.existsSync(t) && S(t, (() => {
395
395
  Q(`\u7f13\u5b58\u5220\u9664 success! ${t}`);
396
396
  })), _({
397
397
  command: "git",
398
- args: [ "clone", "-b", "master", "--depth", "1", y, e ].concat(d)
398
+ args: [ "clone", "-b", "master", "--depth", "1", f, e ].concat(d)
399
399
  }), K($, t);
400
400
  } else I("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template"); else A($);
401
401
  break;
@@ -410,14 +410,14 @@ const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY
410
410
  }) : _({
411
411
  command: "taro",
412
412
  args: [ "build", "--type", "weapp", "--watch" ].concat(d)
413
- }) : f ? _({
413
+ }) : u ? _({
414
414
  command: "dumi",
415
415
  args: [ "dev" ].concat(d)
416
416
  }) : G() ? _({
417
417
  command: "icejs",
418
418
  args: [ "start", "--config", H() ].concat(d)
419
419
  }) : _({
420
- command: "umi",
420
+ command: "max",
421
421
  args: [ "dev" ].concat(d)
422
422
  });
423
423
  break;
@@ -432,14 +432,14 @@ const w = require("staged-git-files"), $ = process.cwd(), P = "##### CREATED BY
432
432
  }) : _({
433
433
  command: "taro",
434
434
  args: [ "build", "--type", "weapp" ].concat(d)
435
- }) : f ? _({
435
+ }) : u ? _({
436
436
  command: "dumi",
437
437
  args: [ "build" ].concat(d)
438
438
  }) : G() ? _({
439
439
  command: "icejs",
440
440
  args: [ "build", "--config", H() ].concat(d)
441
441
  }) : _({
442
- command: "umi",
442
+ command: "max",
443
443
  args: [ "build" ].concat(d)
444
444
  });
445
445
  break;
package/lib/index.js CHANGED
@@ -1,2 +1,634 @@
1
1
  #! /usr/bin/env node
2
- "use strict";var e=require("@babel/runtime/helpers/interopRequireDefault");function t(){const n=e(require("@babel/runtime/helpers/toArray"));return t=function(){return n},n}function n(){const t=e(require("@babel/runtime/helpers/defineProperty"));return n=function(){return t},t}function r(){const t=e(require("lodash/isString"));return r=function(){return t},t}function i(){const t=e(require("lodash/pick"));return i=function(){return t},t}function o(){const t=e(require("lodash/floor"));return o=function(){return t},t}function s(){const t=e(require("lodash/chunk"));return s=function(){return t},t}function a(){const t=e(require("fs"));return a=function(){return t},t}function c(){const t=e(require("path"));return c=function(){return t},t}function u(){const t=e(require("os"));return u=function(){return t},t}function l(){const t=e(require("commander"));return l=function(){return t},t}function f(){const t=e(require("inquirer"));return f=function(){return t},t}function d(){const e=require("child_process");return d=function(){return e},e}function p(){const t=e(require("ora"));return p=function(){return t},t}function m(){const t=e(require("glob"));return m=function(){return t},t}function y(){const t=e(require("minimatch"));return y=function(){return t},t}function g(){const t=e(require("mustache"));return g=function(){return t},t}function h(){const t=e(require("mkdirp"));return h=function(){return t},t}function b(){const t=e(require("rimraf"));return b=function(){return t},t}function j(){const e=require("prettier");return j=function(){return e},e}function S(){const e=w(require("miniprogram-ci"));return S=function(){return e},e}var k=e(require("../package.json"));function v(e){if("function"!==typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(v=function(e){return e?n:t})(e)}function w(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==typeof e&&"function"!==typeof e)return{default:e};var n=v(t);if(n&&n.has(e))return n.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var s=i?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(r,o,s):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}function x(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 $(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){(0,n().default)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}const O=require("staged-git-files"),P=process.cwd(),q="##### CREATED BY YOLK #####",E={ts:"typescript",tsx:"typescript",less:"less",sass:"scss",scss:"scss",css:"css"},F="utf-8",D=60,B=["**/node_modules/**","**/.umi/**","**/.umi-production/**","**/build/**","**/dist/**","**/lib/**","**/es/**","**/public/**","**/assets/**","**/h5+app/**","**/mock/**","**/yolk/**","**/yolk-web/**","**/yolk-web-ui/**","**/yolk-mobile/**","**/yolk-mobile-ui/**","**/yolk-miniprogram/**","**/yolk-miniprogram-ui/**"],I=(0,p().default)(),R=e=>e&&I.warn(Buffer.from(e,F).toString()),Q=e=>e&&I.fail(Buffer.from(e,F).toString()),T=e=>e&&I.succeed(Buffer.from(e,F).toString()),_=e=>e&&I.info(Buffer.from(e,F).toString()),L=e=>"win32"===process.platform?`${e}.cmd`:e,M=()=>{T("yolk complete!"),process.exit(0)},N=()=>{R("yolk break!"),process.exit(0)},A=({command:e,args:t,complete:n,close:r,exit:i=!0})=>{const o=(0,d().spawn)(L(e),t||[],{stdio:"inherit"}).on("close",(e=>{e?(r&&r(),Q("yolk close!"),process.exit(e)):(n&&n(),i&&M())}));process.on("SIGINT",(()=>{l().default.runningCommand&&l().default.runningCommand.kill("SIGKILL"),o.kill(),N()}))},K=(e,t,n)=>{f().default.prompt([{type:"list",name:"type",message:"\u9009\u62e9\u6a21\u7248",default:"web",choices:[{name:"web template(umi framework)",value:"umi-web"},{name:"mobile template(umi framework)",value:"umi-mobile"},{name:"web template(ice framework)",value:"ice-web"},{name:"mobile template(ice framework)",value:"ice-mobile"},{name:"miniprogram template",value:"miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:c().default.basename(c().default.basename(process.cwd()))},{type:"list",name:"dependenciesInstallType",message:"\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",default:!1,choices:[{name:"yarn install",value:"yarn"},{name:"npm install",value:"npm"},{name:"\u4e0d\u521d\u59cb\u5316",value:!1}]}]).then((r=>{const i={projectName:r.projectName,mobile:"umi-mobile"===r.type,dependenciesInstallType:r.dependenciesInstallType,yolkVersion:k.default.version};t||(t=c().default.join(__dirname,`../templates/${r.type}`)),T(`\u590d\u5236\u6a21\u7248 ${c().default.basename(t)}`);const o=m().default.sync("**/*",{cwd:t,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(o.forEach((n=>{if(!t)return;const r=c().default.join(t,n);if(!a().default.statSync(r).isDirectory())if(n.endsWith(".tpl")){const t=a().default.readFileSync(r,F),o=c().default.join(e,n.replace(/\.tpl$/u,"")),s=g().default.render(t,i);h().default.sync(c().default.dirname(o)),T(`\u521b\u5efa ${c().default.relative(e,o)}`),a().default.writeFileSync(o,s,F)}else{T(`\u521b\u5efa ${n}`);const t=c().default.join(e,n);h().default.sync(c().default.dirname(t)),a().default.copyFileSync(r,t)}})),T("\u590d\u5236\u6a21\u7248 success!"),n&&a().default.existsSync(t)&&(0,b().default)(t,(()=>{T(`\u7f13\u5b58\u5220\u9664 success! ${c().default.basename(t||"")}`)})),r.dependenciesInstallType)switch(T("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),r.dependenciesInstallType){case"npm":A({command:"npm",args:["install"]});break;case"yarn":default:A({command:"yarn",args:["install"]});break}T("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")}))},C=(e,t)=>K(e,t,!0),J=()=>{const e=m().default.sync("*.yolkrc*",{cwd:P,dot:!0});if(!e.length)return{};const t=c().default.join(P,e[0]);if(!a().default.existsSync(t))return{};try{return JSON.parse(a().default.readFileSync(t,F))||{}}catch(n){return Q(n.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}},U=()=>{const e=c().default.join(P,".prettierrc");if(!a().default.existsSync(e)){if(a().default.existsSync(require.resolve("@umijs/fabric/dist/prettier"))){const e=require("@umijs/fabric/dist/prettier");return e}return{}}try{return JSON.parse(a().default.readFileSync(e,F))||{}}catch(t){return Q(t.message||".prettierrc\u8f6c\u6362\u9519\u8bef"),{}}},W=()=>{const e=c().default.join(P,"project.config.json");if(!a().default.existsSync(e))return{};try{return JSON.parse(a().default.readFileSync(e,F))||{}}catch(t){return Q(t.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}},V=()=>{const e=c().default.join(P,"package.json");if(!a().default.existsSync(e))return{};try{return JSON.parse(a().default.readFileSync(e,F))||{}}catch(t){return Q(t.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}},G=()=>a().default.existsSync(c().default.join(P,"project.config.json")),H=()=>a().default.existsSync(c().default.join(P,".icerc.ts"))||a().default.existsSync(c().default.join(P,".icerc.js"))||a().default.existsSync(c().default.join(P,".ice.ts"))||a().default.existsSync(c().default.join(P,".ice.js")),Y=()=>a().default.existsSync(c().default.join(P,".icerc.ts"))?".icerc.ts":a().default.existsSync(c().default.join(P,".icerc.js"))?".icerc.js":a().default.existsSync(c().default.join(P,".ice.ts"))?".ice.ts":".ice.js",z=()=>{const e=c().default.join(P,"project.config.json");if(a().default.existsSync(e)){const t=require(e);return t.appid}return""},X=()=>a().default.existsSync(c().default.join(P,"project.tt.json"))&&0===z().indexOf("tt"),Z=()=>0===z().indexOf("20"),ee=()=>{const e=J(),t=G()?require.resolve("@baic/eslint-config-yolk-miniprogram"):require.resolve("@baic/eslint-config-yolk"),n=m().default.sync("*.eslintrc*",{cwd:P,dot:!0}),r=n[0];return!1===e.strict&&r&&a().default.existsSync(r)?r:t},te=()=>{const e=m().default.sync("*.stylelintrc*",{cwd:P,dot:!0}),t=e[0];return t},ne=()=>{const e=c().default.join(P,".git/"),t=c().default.join(P,".git/hooks"),n=c().default.join(t,"pre-commit"),r=a().default.existsSync(e),i=a().default.existsSync(n),o=i&&a().default.readFileSync(n,"utf8").includes(q);if(r&&(!i||!o)){h().default.sync(t),a().default.writeFileSync(n,["#!/usr/bin/env bash","npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",q].join(u().default.EOL),"utf8");try{a().default.chmodSync(n,"777")}catch(s){Q(`chmod ${n} failed: ${s.message}`)}T("Create pre-commit hook")}},re=()=>{const e=J(),t=!1!==e.strict,n=e.eslintIgnore,r=e.stylelintIgnore;O().then((e=>{const i=new Promise(((n,i)=>{const o=te();if(o){const u=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e=>B.every((t=>!(0,y().default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof r?!(0,y().default)(e,r,{matchBase:!0}):r instanceof RegExp?!r.test(e):!Array.isArray(r)||r.every((t=>"string"===typeof t?!(0,y().default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e))))).map((e=>{const t=c().default.join(P,e);return a().default.existsSync(t)?t:null})).filter((e=>!!e));if(u.forEach((e=>{if(e&&a().default.existsSync(e)){const t=c().default.extname(e).replace(/^\./u,""),n=a().default.readFileSync(e,"utf8"),r=(0,j().format)(n,$({parser:E[t]},U()));a().default.writeFileSync(e,r,"utf8")}})),T("style prettier success!"),u.length>=D){const e=[];(0,s().default)(u,20).forEach((n=>{e.push(new Promise(((e,r)=>{A({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",o,...n],complete:e,close:r,exit:!1})})))}));const r=process.getMaxListeners(),a=(0,s().default)(e,r?r/2:2);let c=0;const l=()=>{c<a.length?Promise.all(a[c]).then((()=>{c++,l()})).catch(i):n()};l()}else u.length&&A({command:"stylelint",args:[t?"--ignore-disables":"","--allow-empty-input","--config",o,...u],complete:n,close:i,exit:!1})}else n()})),o=()=>{const r=e.map((e=>e.filename)).filter((e=>/^(src|tests)/iu.test(e))).filter((e=>/\.([t|j]sx?)$/iu.test(e))).map((e=>{const t=c().default.join(P,e);return a().default.existsSync(t)?t:null})).filter((e=>!!e));if(r.length){r.forEach((e=>{if(e&&a().default.existsSync(e)){const t=c().default.extname(e).replace(/^\./u,""),n=a().default.readFileSync(e,"utf8"),r=(0,j().format)(n,$({parser:E[t]},U()));a().default.writeFileSync(e,r,"utf8")}})),T("script prettier success!");const e=ee();if(e){const i=r.filter((e=>B.every((t=>!(0,y().default)(e,t,{matchBase:!0}))))).filter((e=>"string"===typeof n?!(0,y().default)(e,n,{matchBase:!0}):n instanceof RegExp?!n.test(e):!Array.isArray(n)||n.every((t=>"string"===typeof t?!(0,y().default)(e,t,{matchBase:!0}):!(t instanceof RegExp)||!t.test(e)))));if(t&&(R("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),n&&R(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${n}\u3002`)),i.length>=D){const n=[];(0,s().default)(i,20).forEach((r=>{n.push(new Promise((n=>{A({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...r],complete:n,exit:!1})})))}));const r=process.getMaxListeners(),o=(0,s().default)(n,r?r/2:2);let a=0;const c=()=>{a<o.length?Promise.all(o[a]).then((()=>{a++,c()})):M()};c()}else i.length&&A({command:"eslint",args:[t?"--no-inline-config --no-ignore":"","--no-error-on-unmatched-pattern","--config",e,...i]})}else R("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6")}else M()};R("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),i.then(o)}))},ie=({mProject:e,mPrivateKeyPath:t,mVersion:n,mDesc:r,mRobot:i,mQrcodeFormat:o,mQrcodeOutputDest:s,mPagePath:u,mSearchQuery:l})=>{const f=a().default.existsSync(c().default.join(P,".git"))?(0,d().execSync)("git log -1 --pretty=format:%H").toString():"",p=W(),m=p.appid,y=e||c().default.join(P,"dist"),g=t||c().default.join(P,`private.${m}.key`);if(a().default.existsSync(y)){if(a().default.existsSync(g)){const e=V(),t=n||e.version||p.version||"1.0.0",a=r||e.description||p.description,c=`version: ${t};${f?` commit: ${f};`:""}${a?` description: ${a};`:""}`;f&&_(`commit: ${f}`),_(`dist: ${y}`),_(`key: ${g}`),_(`appid: ${m}`),_(`version: ${t}`),_(`desc: ${c}`);const d=new(S().Project)({appid:m,type:"miniProgram",projectPath:y,privateKeyPath:g,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:m,options:{project:d,version:t,desc:c,setting:p.setting,robot:i,qrcodeFormat:o,qrcodeOutputDest:s,pagePath:u,searchQuery:l}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`)},oe=()=>{ne(),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,n)=>{const s=(0,t().default)(n),l=s[0],f=s.slice(1),d=e.clone,p=e.template,m=e.docs;if(l)switch(_(`yolk version: ${k.default.version}`),_(`node version: ${process.version}`),_(`platform: ${u().default.platform()}`),_(`memory: ${(0,o().default)(u().default.freemem()/1024/1024)} MB(${(0,o().default)(u().default.totalmem()/1024/1024)} MB)`),l){case"init":if(T(`yolk ${l} \u5f00\u59cb`),d)if(p){const e=".yolk",t=c().default.join(P,e);a().default.existsSync(t)&&(0,b().default)(t,(()=>{T(`\u7f13\u5b58\u5220\u9664 success! ${t}`)})),A({command:"git",args:["clone","-b","master","--depth","1",p,e].concat(f)}),C(P,t)}else Q("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template");else K(P);break;case"start":G()?X()?A({command:"taro",args:["build","--type","tt","--watch"].concat(f)}):Z()?A({command:"taro",args:["build","--type","alipay","--watch"].concat(f)}):A({command:"taro",args:["build","--type","weapp","--watch"].concat(f)}):m?A({command:"dumi",args:["dev"].concat(f)}):H()?A({command:"icejs",args:["start","--config",Y()].concat(f)}):A({command:"umi",args:["dev"].concat(f)});break;case"build":G()?X()?A({command:"taro",args:["build","--type","tt"].concat(f)}):Z()?A({command:"taro",args:["build","--type","alipay"].concat(f)}):A({command:"taro",args:["build","--type","weapp"].concat(f)}):m?A({command:"dumi",args:["build"].concat(f)}):H()?A({command:"icejs",args:["build","--config",Y()].concat(f)}):A({command:"umi",args:["build"].concat(f)});break;case"pre-commit":re();break;case"test":A({command:"umi-test",args:["--no-cache","--update-snapshot","--runInBand","--detectOpenHandles"].concat(f)});break;case"miniapp-upload":case"miniprogram-upload":if(G())if(X());else if(Z());else{const t=ie(e),n=t.appid,o=t.options;_(`${n}\u4e0a\u4f20\u5f00\u59cb`),S().upload($($({},(0,i().default)(o,["project","version","desc","setting","robot"])),{},{onProgressUpdate:e=>{if((0,r().default)(e))_(`task: ${e}`);else{const t=e.status,n=e.message;_(`task(${t}): ${n}`)}}})).then((()=>{T(`${n}\u4e0a\u4f20\u5b8c\u6210`)}))}break;case"miniapp-preview":case"miniprogram-preview":if(G())if(X());else if(Z());else{const t=ie(e),n=t.appid,o=t.options;_(`${n}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),S().preview($($({},(0,i().default)(o,["project","version","desc","setting","robot","qrcodeFormat","qrcodeOutputDest","pagePath","searchQuery"])),{},{onProgressUpdate:e=>{if((0,r().default)(e))_(`task: ${e}`);else{const t=e.status,n=e.message;_(`task(${t}): ${n}`)}}})).then((()=>{T(`${n}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}))}break;default:N()}})).parse(process.argv):N()};oe();
2
+ "use strict";
3
+
4
+ var e = require("@babel/runtime/helpers/interopRequireDefault");
5
+
6
+ function t() {
7
+ const n = e(require("@babel/runtime/helpers/toArray"));
8
+ return t = function() {
9
+ return n;
10
+ }, n;
11
+ }
12
+
13
+ function n() {
14
+ const t = e(require("@babel/runtime/helpers/defineProperty"));
15
+ return n = function() {
16
+ return t;
17
+ }, t;
18
+ }
19
+
20
+ function r() {
21
+ const t = e(require("lodash/isString"));
22
+ return r = function() {
23
+ return t;
24
+ }, t;
25
+ }
26
+
27
+ function i() {
28
+ const t = e(require("lodash/pick"));
29
+ return i = function() {
30
+ return t;
31
+ }, t;
32
+ }
33
+
34
+ function o() {
35
+ const t = e(require("lodash/floor"));
36
+ return o = function() {
37
+ return t;
38
+ }, t;
39
+ }
40
+
41
+ function s() {
42
+ const t = e(require("lodash/chunk"));
43
+ return s = function() {
44
+ return t;
45
+ }, t;
46
+ }
47
+
48
+ function a() {
49
+ const t = e(require("fs"));
50
+ return a = function() {
51
+ return t;
52
+ }, t;
53
+ }
54
+
55
+ function c() {
56
+ const t = e(require("path"));
57
+ return c = function() {
58
+ return t;
59
+ }, t;
60
+ }
61
+
62
+ function u() {
63
+ const t = e(require("os"));
64
+ return u = function() {
65
+ return t;
66
+ }, t;
67
+ }
68
+
69
+ function l() {
70
+ const t = e(require("commander"));
71
+ return l = function() {
72
+ return t;
73
+ }, t;
74
+ }
75
+
76
+ function f() {
77
+ const t = e(require("inquirer"));
78
+ return f = function() {
79
+ return t;
80
+ }, t;
81
+ }
82
+
83
+ function d() {
84
+ const e = require("child_process");
85
+ return d = function() {
86
+ return e;
87
+ }, e;
88
+ }
89
+
90
+ function p() {
91
+ const t = e(require("ora"));
92
+ return p = function() {
93
+ return t;
94
+ }, t;
95
+ }
96
+
97
+ function m() {
98
+ const t = e(require("glob"));
99
+ return m = function() {
100
+ return t;
101
+ }, t;
102
+ }
103
+
104
+ function y() {
105
+ const t = e(require("minimatch"));
106
+ return y = function() {
107
+ return t;
108
+ }, t;
109
+ }
110
+
111
+ function g() {
112
+ const t = e(require("mustache"));
113
+ return g = function() {
114
+ return t;
115
+ }, t;
116
+ }
117
+
118
+ function h() {
119
+ const t = e(require("mkdirp"));
120
+ return h = function() {
121
+ return t;
122
+ }, t;
123
+ }
124
+
125
+ function b() {
126
+ const t = e(require("rimraf"));
127
+ return b = function() {
128
+ return t;
129
+ }, t;
130
+ }
131
+
132
+ function j() {
133
+ const e = require("prettier");
134
+ return j = function() {
135
+ return e;
136
+ }, e;
137
+ }
138
+
139
+ function S() {
140
+ const e = x(require("miniprogram-ci"));
141
+ return S = function() {
142
+ return e;
143
+ }, e;
144
+ }
145
+
146
+ var k = e(require("../package.json"));
147
+
148
+ function v(e) {
149
+ if ("function" !== typeof WeakMap) return null;
150
+ var t = new WeakMap, n = new WeakMap;
151
+ return (v = function(e) {
152
+ return e ? n : t;
153
+ })(e);
154
+ }
155
+
156
+ function x(e, t) {
157
+ if (!t && e && e.__esModule) return e;
158
+ if (null === e || "object" !== typeof e && "function" !== typeof e) return {
159
+ default: e
160
+ };
161
+ var n = v(t);
162
+ if (n && n.has(e)) return n.get(e);
163
+ var r = {}, i = Object.defineProperty && Object.getOwnPropertyDescriptor;
164
+ for (var o in e) if ("default" !== o && Object.prototype.hasOwnProperty.call(e, o)) {
165
+ var s = i ? Object.getOwnPropertyDescriptor(e, o) : null;
166
+ s && (s.get || s.set) ? Object.defineProperty(r, o, s) : r[o] = e[o];
167
+ }
168
+ return r.default = e, n && n.set(e, r), r;
169
+ }
170
+
171
+ function w(e, t) {
172
+ var n = Object.keys(e);
173
+ if (Object.getOwnPropertySymbols) {
174
+ var r = Object.getOwnPropertySymbols(e);
175
+ t && (r = r.filter((function(t) {
176
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
177
+ }))), n.push.apply(n, r);
178
+ }
179
+ return n;
180
+ }
181
+
182
+ function $(e) {
183
+ for (var t = 1; t < arguments.length; t++) {
184
+ var r = null != arguments[t] ? arguments[t] : {};
185
+ t % 2 ? w(Object(r), !0).forEach((function(t) {
186
+ (0, n().default)(e, t, r[t]);
187
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : w(Object(r)).forEach((function(t) {
188
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
189
+ }));
190
+ }
191
+ return e;
192
+ }
193
+
194
+ const O = require("staged-git-files"), P = process.cwd(), q = "##### CREATED BY YOLK #####", E = {
195
+ ts: "typescript",
196
+ tsx: "typescript",
197
+ less: "less",
198
+ sass: "scss",
199
+ scss: "scss",
200
+ css: "css"
201
+ }, F = "utf-8", D = 60, B = [ "**/node_modules/**", "**/.umi/**", "**/.umi-production/**", "**/build/**", "**/dist/**", "**/lib/**", "**/es/**", "**/public/**", "**/assets/**", "**/h5+app/**", "**/mock/**", "**/yolk/**", "**/yolk-web/**", "**/yolk-web-ui/**", "**/yolk-mobile/**", "**/yolk-mobile-ui/**", "**/yolk-miniprogram/**", "**/yolk-miniprogram-ui/**" ], I = (0,
202
+ p().default)(), R = e => e && I.warn(Buffer.from(e, F).toString()), Q = e => e && I.fail(Buffer.from(e, F).toString()), T = e => e && I.succeed(Buffer.from(e, F).toString()), _ = e => e && I.info(Buffer.from(e, F).toString()), L = e => "win32" === process.platform ? `${e}.cmd` : e, M = () => {
203
+ T("yolk complete!"), process.exit(0);
204
+ }, N = () => {
205
+ R("yolk break!"), process.exit(0);
206
+ }, A = ({command: e, args: t, complete: n, close: r, exit: i = !0}) => {
207
+ const o = (0, d().spawn)(L(e), t || [], {
208
+ stdio: "inherit"
209
+ }).on("close", (e => {
210
+ e ? (r && r(), Q("yolk close!"), process.exit(e)) : (n && n(), i && M());
211
+ }));
212
+ process.on("SIGINT", (() => {
213
+ l().default.runningCommand && l().default.runningCommand.kill("SIGKILL"), o.kill(),
214
+ N();
215
+ }));
216
+ }, K = (e, t, n) => {
217
+ f().default.prompt([ {
218
+ type: "list",
219
+ name: "type",
220
+ message: "\u9009\u62e9\u6a21\u7248",
221
+ default: "web",
222
+ choices: [ {
223
+ name: "web template(umi framework)",
224
+ value: "umi-web"
225
+ }, {
226
+ name: "mobile template(umi framework)",
227
+ value: "umi-mobile"
228
+ }, {
229
+ name: "web template(ice framework)",
230
+ value: "ice-web"
231
+ }, {
232
+ name: "mobile template(ice framework)",
233
+ value: "ice-mobile"
234
+ }, {
235
+ name: "miniprogram template",
236
+ value: "miniprogram"
237
+ } ]
238
+ }, {
239
+ type: "input",
240
+ name: "projectName",
241
+ message: "\u9879\u76ee\u540d\u79f0",
242
+ default: c().default.basename(c().default.basename(process.cwd()))
243
+ }, {
244
+ type: "list",
245
+ name: "dependenciesInstallType",
246
+ message: "\u9009\u62e9\u4f9d\u8d56\u5b89\u88c5\u65b9\u5f0f",
247
+ default: !1,
248
+ choices: [ {
249
+ name: "yarn install",
250
+ value: "yarn"
251
+ }, {
252
+ name: "npm install",
253
+ value: "npm"
254
+ }, {
255
+ name: "\u4e0d\u521d\u59cb\u5316",
256
+ value: !1
257
+ } ]
258
+ } ]).then((r => {
259
+ const i = {
260
+ projectName: r.projectName,
261
+ mobile: "umi-mobile" === r.type,
262
+ dependenciesInstallType: r.dependenciesInstallType,
263
+ yolkVersion: k.default.version
264
+ };
265
+ t || (t = c().default.join(__dirname, `../templates/${r.type}`)), T(`\u590d\u5236\u6a21\u7248 ${c().default.basename(t)}`);
266
+ const o = m().default.sync("**/*", {
267
+ cwd: t,
268
+ dot: !0,
269
+ ignore: [ "**/node_modules/**", "**/.git/**", "**/.DS_Store", "**/.idea/**" ]
270
+ });
271
+ if (o.forEach((n => {
272
+ if (!t) return;
273
+ const r = c().default.join(t, n);
274
+ if (!a().default.statSync(r).isDirectory()) if (n.endsWith(".tpl")) {
275
+ const t = a().default.readFileSync(r, F), o = c().default.join(e, n.replace(/\.tpl$/u, "")), s = g().default.render(t, i);
276
+ h().default.sync(c().default.dirname(o)), T(`\u521b\u5efa ${c().default.relative(e, o)}`),
277
+ a().default.writeFileSync(o, s, F);
278
+ } else {
279
+ T(`\u521b\u5efa ${n}`);
280
+ const t = c().default.join(e, n);
281
+ h().default.sync(c().default.dirname(t)), a().default.copyFileSync(r, t);
282
+ }
283
+ })), T("\u590d\u5236\u6a21\u7248 success!"), n && a().default.existsSync(t) && (0,
284
+ b().default)(t, (() => {
285
+ T(`\u7f13\u5b58\u5220\u9664 success! ${c().default.basename(t || "")}`);
286
+ })), r.dependenciesInstallType) switch (T("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),
287
+ r.dependenciesInstallType) {
288
+ case "npm":
289
+ A({
290
+ command: "npm",
291
+ args: [ "install" ]
292
+ });
293
+ break;
294
+
295
+ case "yarn":
296
+ default:
297
+ A({
298
+ command: "yarn",
299
+ args: [ "install" ]
300
+ });
301
+ break;
302
+ }
303
+ T("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863");
304
+ }));
305
+ }, C = (e, t) => K(e, t, !0), J = () => {
306
+ const e = m().default.sync("*.yolkrc*", {
307
+ cwd: P,
308
+ dot: !0
309
+ });
310
+ if (!e.length) return {};
311
+ const t = c().default.join(P, e[0]);
312
+ if (!a().default.existsSync(t)) return {};
313
+ try {
314
+ return JSON.parse(a().default.readFileSync(t, F)) || {};
315
+ } catch (n) {
316
+ return Q(n.message || ".yolkrc\u8f6c\u6362\u9519\u8bef"), {};
317
+ }
318
+ }, U = () => {
319
+ const e = c().default.join(P, ".prettierrc");
320
+ if (!a().default.existsSync(e)) {
321
+ if (a().default.existsSync(require.resolve("@umijs/fabric/dist/prettier"))) {
322
+ const e = require("@umijs/fabric/dist/prettier");
323
+ return e;
324
+ }
325
+ return {};
326
+ }
327
+ try {
328
+ return JSON.parse(a().default.readFileSync(e, F)) || {};
329
+ } catch (t) {
330
+ return Q(t.message || ".prettierrc\u8f6c\u6362\u9519\u8bef"), {};
331
+ }
332
+ }, W = () => {
333
+ const e = c().default.join(P, "project.config.json");
334
+ if (!a().default.existsSync(e)) return {};
335
+ try {
336
+ return JSON.parse(a().default.readFileSync(e, F)) || {};
337
+ } catch (t) {
338
+ return Q(t.message || "project.config.json\u8f6c\u6362\u9519\u8bef"), {};
339
+ }
340
+ }, V = () => {
341
+ const e = c().default.join(P, "package.json");
342
+ if (!a().default.existsSync(e)) return {};
343
+ try {
344
+ return JSON.parse(a().default.readFileSync(e, F)) || {};
345
+ } catch (t) {
346
+ return Q(t.message || "package.json\u8f6c\u6362\u9519\u8bef"), {};
347
+ }
348
+ }, G = () => a().default.existsSync(c().default.join(P, "project.config.json")), H = () => a().default.existsSync(c().default.join(P, ".icerc.ts")) || a().default.existsSync(c().default.join(P, ".icerc.js")) || a().default.existsSync(c().default.join(P, ".ice.ts")) || a().default.existsSync(c().default.join(P, ".ice.js")), Y = () => a().default.existsSync(c().default.join(P, ".icerc.ts")) ? ".icerc.ts" : a().default.existsSync(c().default.join(P, ".icerc.js")) ? ".icerc.js" : a().default.existsSync(c().default.join(P, ".ice.ts")) ? ".ice.ts" : ".ice.js", z = () => {
349
+ const e = c().default.join(P, "project.config.json");
350
+ if (a().default.existsSync(e)) {
351
+ const t = require(e);
352
+ return t.appid;
353
+ }
354
+ return "";
355
+ }, X = () => a().default.existsSync(c().default.join(P, "project.tt.json")) && 0 === z().indexOf("tt"), Z = () => 0 === z().indexOf("20"), ee = () => {
356
+ const e = J(), t = G() ? require.resolve("@baic/eslint-config-yolk-miniprogram") : require.resolve("@baic/eslint-config-yolk"), n = m().default.sync("*.eslintrc*", {
357
+ cwd: P,
358
+ dot: !0
359
+ }), r = n[0];
360
+ return !1 === e.strict && r && a().default.existsSync(r) ? r : t;
361
+ }, te = () => {
362
+ const e = m().default.sync("*.stylelintrc*", {
363
+ cwd: P,
364
+ dot: !0
365
+ }), t = e[0];
366
+ return t;
367
+ }, ne = () => {
368
+ const e = c().default.join(P, ".git/"), t = c().default.join(P, ".git/hooks"), n = c().default.join(t, "pre-commit"), r = a().default.existsSync(e), i = a().default.existsSync(n), o = i && a().default.readFileSync(n, "utf8").includes(q);
369
+ if (r && (!i || !o)) {
370
+ h().default.sync(t), a().default.writeFileSync(n, [ "#!/usr/bin/env bash", "npx yolk pre-commit", "RESULT=$?", "[ $RESULT -ne 0 ] && exit 1", "exit 0", q ].join(u().default.EOL), "utf8");
371
+ try {
372
+ a().default.chmodSync(n, "777");
373
+ } catch (s) {
374
+ Q(`chmod ${n} failed: ${s.message}`);
375
+ }
376
+ T("Create pre-commit hook");
377
+ }
378
+ }, re = () => {
379
+ const e = J(), t = !1 !== e.strict, n = e.eslintIgnore, r = e.stylelintIgnore;
380
+ O().then((e => {
381
+ const i = new Promise(((n, i) => {
382
+ const o = te();
383
+ if (o) {
384
+ const u = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.(le|sa|sc|c)s{2}$/iu.test(e))).filter((e => B.every((t => !(0,
385
+ y().default)(e, t, {
386
+ matchBase: !0
387
+ }))))).filter((e => "string" === typeof r ? !(0, y().default)(e, r, {
388
+ matchBase: !0
389
+ }) : r instanceof RegExp ? !r.test(e) : !Array.isArray(r) || r.every((t => "string" === typeof t ? !(0,
390
+ y().default)(e, t, {
391
+ matchBase: !0
392
+ }) : !(t instanceof RegExp) || !t.test(e))))).map((e => {
393
+ const t = c().default.join(P, e);
394
+ return a().default.existsSync(t) ? t : null;
395
+ })).filter((e => !!e));
396
+ if (u.forEach((e => {
397
+ if (e && a().default.existsSync(e)) {
398
+ const t = c().default.extname(e).replace(/^\./u, ""), n = a().default.readFileSync(e, "utf8"), r = (0,
399
+ j().format)(n, $({
400
+ parser: E[t]
401
+ }, U()));
402
+ a().default.writeFileSync(e, r, "utf8");
403
+ }
404
+ })), T("style prettier success!"), u.length >= D) {
405
+ const e = [];
406
+ (0, s().default)(u, 20).forEach((n => {
407
+ e.push(new Promise(((e, r) => {
408
+ A({
409
+ command: "stylelint",
410
+ args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", o, ...n ],
411
+ complete: e,
412
+ close: r,
413
+ exit: !1
414
+ });
415
+ })));
416
+ }));
417
+ const r = process.getMaxListeners(), a = (0, s().default)(e, r ? r / 2 : 2);
418
+ let c = 0;
419
+ const l = () => {
420
+ c < a.length ? Promise.all(a[c]).then((() => {
421
+ c++, l();
422
+ })).catch(i) : n();
423
+ };
424
+ l();
425
+ } else u.length && A({
426
+ command: "stylelint",
427
+ args: [ t ? "--ignore-disables" : "", "--allow-empty-input", "--config", o, ...u ],
428
+ complete: n,
429
+ close: i,
430
+ exit: !1
431
+ });
432
+ } else n();
433
+ })), o = () => {
434
+ const r = e.map((e => e.filename)).filter((e => /^(src|tests)/iu.test(e))).filter((e => /\.([t|j]sx?)$/iu.test(e))).map((e => {
435
+ const t = c().default.join(P, e);
436
+ return a().default.existsSync(t) ? t : null;
437
+ })).filter((e => !!e));
438
+ if (r.length) {
439
+ r.forEach((e => {
440
+ if (e && a().default.existsSync(e)) {
441
+ const t = c().default.extname(e).replace(/^\./u, ""), n = a().default.readFileSync(e, "utf8"), r = (0,
442
+ j().format)(n, $({
443
+ parser: E[t]
444
+ }, U()));
445
+ a().default.writeFileSync(e, r, "utf8");
446
+ }
447
+ })), T("script prettier success!");
448
+ const e = ee();
449
+ if (e) {
450
+ const i = r.filter((e => B.every((t => !(0, y().default)(e, t, {
451
+ matchBase: !0
452
+ }))))).filter((e => "string" === typeof n ? !(0, y().default)(e, n, {
453
+ matchBase: !0
454
+ }) : n instanceof RegExp ? !n.test(e) : !Array.isArray(n) || n.every((t => "string" === typeof t ? !(0,
455
+ y().default)(e, t, {
456
+ matchBase: !0
457
+ }) : !(t instanceof RegExp) || !t.test(e)))));
458
+ if (t && (R("git commit\u7981\u6b62eslint\u7684ignore\u65b9\u5f0f(eslint-disable\u3001.eslintrc*\u3001ignore\u7b49)\u3002"),
459
+ n && R(`\u901a\u8fc7yolkrc\u914d\u7f6eeslintIgnore\uff1a${n}\u3002`)), i.length >= D) {
460
+ const n = [];
461
+ (0, s().default)(i, 20).forEach((r => {
462
+ n.push(new Promise((n => {
463
+ A({
464
+ command: "eslint",
465
+ args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...r ],
466
+ complete: n,
467
+ exit: !1
468
+ });
469
+ })));
470
+ }));
471
+ const r = process.getMaxListeners(), o = (0, s().default)(n, r ? r / 2 : 2);
472
+ let a = 0;
473
+ const c = () => {
474
+ a < o.length ? Promise.all(o[a]).then((() => {
475
+ a++, c();
476
+ })) : M();
477
+ };
478
+ c();
479
+ } else i.length && A({
480
+ command: "eslint",
481
+ args: [ t ? "--no-inline-config --no-ignore" : "", "--no-error-on-unmatched-pattern", "--config", e, ...i ]
482
+ });
483
+ } else R("\u6ca1\u6709eslint\u914d\u7f6e\u6587\u4ef6");
484
+ } else M();
485
+ };
486
+ R("\u8981\u6c42\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),
487
+ i.then(o);
488
+ }));
489
+ }, ie = ({mProject: e, mPrivateKeyPath: t, mVersion: n, mDesc: r, mRobot: i, mQrcodeFormat: o, mQrcodeOutputDest: s, mPagePath: u, mSearchQuery: l}) => {
490
+ const f = a().default.existsSync(c().default.join(P, ".git")) ? (0, d().execSync)("git log -1 --pretty=format:%H").toString() : "", p = W(), m = p.appid, y = e || c().default.join(P, "dist"), g = t || c().default.join(P, `private.${m}.key`);
491
+ if (a().default.existsSync(y)) {
492
+ if (a().default.existsSync(g)) {
493
+ const e = V(), t = n || e.version || p.version || "1.0.0", a = r || e.description || p.description, c = `version: ${t};${f ? ` commit: ${f};` : ""}${a ? ` description: ${a};` : ""}`;
494
+ f && _(`commit: ${f}`), _(`dist: ${y}`), _(`key: ${g}`), _(`appid: ${m}`), _(`version: ${t}`),
495
+ _(`desc: ${c}`);
496
+ const d = new (S().Project)({
497
+ appid: m,
498
+ type: "miniProgram",
499
+ projectPath: y,
500
+ privateKeyPath: g,
501
+ ignores: [ "node_modules/**/*", "**/*.txt", "**/*.key", "**/*.less", "**/*.sass", "**/*.scss", "**/*.css", "**/*.jsx", "**/*.ts", "**/*.tsx", "**/*.md" ]
502
+ });
503
+ return {
504
+ appid: m,
505
+ options: {
506
+ project: d,
507
+ version: t,
508
+ desc: c,
509
+ setting: p.setting,
510
+ robot: i,
511
+ qrcodeFormat: o,
512
+ qrcodeOutputDest: s,
513
+ pagePath: u,
514
+ searchQuery: l
515
+ }
516
+ };
517
+ }
518
+ throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${g})`);
519
+ }
520
+ throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`);
521
+ }, oe = () => {
522
+ ne(), 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, n) => {
523
+ const s = (0, t().default)(n), l = s[0], f = s.slice(1), d = e.clone, p = e.template, m = e.docs;
524
+ if (l) switch (_(`yolk version: ${k.default.version}`), _(`node version: ${process.version}`),
525
+ _(`platform: ${u().default.platform()}`), _(`memory: ${(0, o().default)(u().default.freemem() / 1024 / 1024)} MB(${(0,
526
+ o().default)(u().default.totalmem() / 1024 / 1024)} MB)`), l) {
527
+ case "init":
528
+ if (T(`yolk ${l} \u5f00\u59cb`), d) if (p) {
529
+ const e = ".yolk", t = c().default.join(P, e);
530
+ a().default.existsSync(t) && (0, b().default)(t, (() => {
531
+ T(`\u7f13\u5b58\u5220\u9664 success! ${t}`);
532
+ })), A({
533
+ command: "git",
534
+ args: [ "clone", "-b", "master", "--depth", "1", p, e ].concat(f)
535
+ }), C(P, t);
536
+ } else Q("--clone \u6a21\u5f0f\u5fc5\u987b\u6709--template"); else K(P);
537
+ break;
538
+
539
+ case "start":
540
+ G() ? X() ? A({
541
+ command: "taro",
542
+ args: [ "build", "--type", "tt", "--watch" ].concat(f)
543
+ }) : Z() ? A({
544
+ command: "taro",
545
+ args: [ "build", "--type", "alipay", "--watch" ].concat(f)
546
+ }) : A({
547
+ command: "taro",
548
+ args: [ "build", "--type", "weapp", "--watch" ].concat(f)
549
+ }) : m ? A({
550
+ command: "dumi",
551
+ args: [ "dev" ].concat(f)
552
+ }) : H() ? A({
553
+ command: "icejs",
554
+ args: [ "start", "--config", Y() ].concat(f)
555
+ }) : A({
556
+ command: "max",
557
+ args: [ "dev" ].concat(f)
558
+ });
559
+ break;
560
+
561
+ case "build":
562
+ G() ? X() ? A({
563
+ command: "taro",
564
+ args: [ "build", "--type", "tt" ].concat(f)
565
+ }) : Z() ? A({
566
+ command: "taro",
567
+ args: [ "build", "--type", "alipay" ].concat(f)
568
+ }) : A({
569
+ command: "taro",
570
+ args: [ "build", "--type", "weapp" ].concat(f)
571
+ }) : m ? A({
572
+ command: "dumi",
573
+ args: [ "build" ].concat(f)
574
+ }) : H() ? A({
575
+ command: "icejs",
576
+ args: [ "build", "--config", Y() ].concat(f)
577
+ }) : A({
578
+ command: "max",
579
+ args: [ "build" ].concat(f)
580
+ });
581
+ break;
582
+
583
+ case "pre-commit":
584
+ re();
585
+ break;
586
+
587
+ case "test":
588
+ A({
589
+ command: "umi-test",
590
+ args: [ "--no-cache", "--update-snapshot", "--runInBand", "--detectOpenHandles" ].concat(f)
591
+ });
592
+ break;
593
+
594
+ case "miniapp-upload":
595
+ case "miniprogram-upload":
596
+ if (G()) if (X()) ; else if (Z()) ; else {
597
+ const t = ie(e), n = t.appid, o = t.options;
598
+ _(`${n}\u4e0a\u4f20\u5f00\u59cb`), S().upload($($({}, (0, i().default)(o, [ "project", "version", "desc", "setting", "robot" ])), {}, {
599
+ onProgressUpdate: e => {
600
+ if ((0, r().default)(e)) _(`task: ${e}`); else {
601
+ const t = e.status, n = e.message;
602
+ _(`task(${t}): ${n}`);
603
+ }
604
+ }
605
+ })).then((() => {
606
+ T(`${n}\u4e0a\u4f20\u5b8c\u6210`);
607
+ }));
608
+ }
609
+ break;
610
+
611
+ case "miniapp-preview":
612
+ case "miniprogram-preview":
613
+ if (G()) if (X()) ; else if (Z()) ; else {
614
+ const t = ie(e), n = t.appid, o = t.options;
615
+ _(`${n}\u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`), S().preview($($({}, (0, i().default)(o, [ "project", "version", "desc", "setting", "robot", "qrcodeFormat", "qrcodeOutputDest", "pagePath", "searchQuery" ])), {}, {
616
+ onProgressUpdate: e => {
617
+ if ((0, r().default)(e)) _(`task: ${e}`); else {
618
+ const t = e.status, n = e.message;
619
+ _(`task(${t}): ${n}`);
620
+ }
621
+ }
622
+ })).then((() => {
623
+ T(`${n}\u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`);
624
+ }));
625
+ }
626
+ break;
627
+
628
+ default:
629
+ N();
630
+ }
631
+ })).parse(process.argv) : N();
632
+ };
633
+
634
+ oe();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baic/yolk-cli",
3
- "version": "2.0.1-alpha.52",
3
+ "version": "2.1.0-alpha.2",
4
4
  "author": "Baic <303394539@qq.com>",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "0d8c7d3358c440bce00406a238214645a13507b1"
43
+ "gitHead": "7d8dfc0cc910618110620f41df9e8159816e9610"
44
44
  }
@@ -1,5 +1,3 @@
1
- import * as React from 'react';
2
-
3
1
  import { Provider } from '@baic/yolk-mobile';
4
2
 
5
3
  import request from '@/common/request';
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
- import { IRouteComponentProps } from 'umi';
1
+ import { Outlet } from 'umi';
3
2
 
4
- export default ({ children }: IRouteComponentProps) => <>{children}</>;
3
+ export default () => <Outlet />;
@@ -1,26 +1,3 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "esnext",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "importHelpers": true,
7
- "jsx": "react-jsx",
8
- "esModuleInterop": true,
9
- "sourceMap": true,
10
- "baseUrl": "./",
11
- "strict": true,
12
- "paths": {
13
- "@/*": ["src/*"],
14
- "@@/*": ["src/.umi/*"]
15
- },
16
- "allowSyntheticDefaultImports": true
17
- },
18
- "include": [
19
- "mock/**/*",
20
- "src/**/*",
21
- "tests/**/*",
22
- "config/**/*",
23
- ".umirc.ts",
24
- "typings.d.ts"
25
- ]
2
+ "extends": "./src/.umi/tsconfig.json"
26
3
  }
@@ -1,16 +1 @@
1
- declare module '*.png';
2
- declare module '*.gif';
3
- declare module '*.jpg';
4
- declare module '*.jpeg';
5
- declare module '*.svg' {
6
- export function ReactComponent(
7
- props: React.SVGProps<SVGSVGElement>,
8
- ): React.ReactElement;
9
- const url: string;
10
- export default url;
11
- }
12
- declare module '*.css';
13
- declare module '*.less';
14
- declare module '*.scss';
15
- declare module '*.sass';
16
- declare module '*.styl';
1
+ import '@umijs/max/typings';
@@ -1,5 +1,3 @@
1
- import * as React from 'react';
2
-
3
1
  import { Provider } from '@baic/yolk-web';
4
2
 
5
3
  import request from '@/common/request';
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
- import { IRouteComponentProps } from 'umi';
1
+ import { Outlet } from 'umi';
3
2
 
4
- export default ({ children }: IRouteComponentProps) => <>{children}</>;
3
+ export default () => <Outlet />;
@@ -1,26 +1,3 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "esnext",
4
- "module": "esnext",
5
- "moduleResolution": "node",
6
- "importHelpers": true,
7
- "jsx": "react-jsx",
8
- "esModuleInterop": true,
9
- "sourceMap": true,
10
- "baseUrl": "./",
11
- "strict": true,
12
- "paths": {
13
- "@/*": ["src/*"],
14
- "@@/*": ["src/.umi/*"]
15
- },
16
- "allowSyntheticDefaultImports": true
17
- },
18
- "include": [
19
- "mock/**/*",
20
- "src/**/*",
21
- "tests/**/*",
22
- "config/**/*",
23
- ".umirc.ts",
24
- "typings.d.ts"
25
- ]
2
+ "extends": "./src/.umi/tsconfig.json"
26
3
  }
@@ -1,16 +1 @@
1
- declare module '*.png';
2
- declare module '*.gif';
3
- declare module '*.jpg';
4
- declare module '*.jpeg';
5
- declare module '*.svg' {
6
- export function ReactComponent(
7
- props: React.SVGProps<SVGSVGElement>,
8
- ): React.ReactElement;
9
- const url: string;
10
- export default url;
11
- }
12
- declare module '*.css';
13
- declare module '*.less';
14
- declare module '*.scss';
15
- declare module '*.sass';
16
- declare module '*.styl';
1
+ import '@umijs/max/typings';
@@ -1,16 +0,0 @@
1
- # http://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- indent_style = space
6
- indent_size = 2
7
- end_of_line = lf
8
- charset = utf-8
9
- trim_trailing_whitespace = true
10
- insert_final_newline = true
11
-
12
- [*.md]
13
- trim_trailing_whitespace = false
14
-
15
- [Makefile]
16
- indent_style = tab
@@ -1,16 +0,0 @@
1
- # http://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- indent_style = space
6
- indent_size = 2
7
- end_of_line = lf
8
- charset = utf-8
9
- trim_trailing_whitespace = true
10
- insert_final_newline = true
11
-
12
- [*.md]
13
- trim_trailing_whitespace = false
14
-
15
- [Makefile]
16
- indent_style = tab