@baic/yolk-cli 2.1.0-alpha.271 → 2.1.0-alpha.273

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/_util.js CHANGED
@@ -1 +1 @@
1
- import{spawn as r,spawnSync as o}from"node:child_process";import{existsSync as t,readFileSync as e}from"node:fs";import{join as n}from"node:path";import c from"chalk";import s from"exit-x";import{globSync as i}from"glob";import{rimrafSync as a,windowsSync as m}from"rimraf";import{program as p}from"../compiled/commander";export const cwd=process.cwd();const g=console;export const ENCODING="utf-8";export const warn=r=>r&&g.log(c.yellow("warn -"),r);export const error=r=>r&&g.log(c.red("error -"),c.red(r));export const ready=r=>r&&g.log(c.green("ready -"),r);export const info=r=>r&&g.log(c.blue("info -"),r);const f=()=>"win32"===process.platform;export const transformCommand=r=>f()?`${r}.cmd`:r;export const rimrafSync=r=>f()?m(r):a(r);export const breakExit=()=>{warn("yolk break!"),s(0)};export const spawnCommand=({command:o,args:t,complete:e,exit:n=!0,options:c})=>{const i=r(transformCommand(o),t||[],{stdio:"inherit",...c}).on("close",r=>{r?s(r):(e?.(),n&&s(0))});process.on("SIGINT",()=>{p.exitOverride(),i.kill(),s(0)})};export const spawnSyncCommand=({command:r,args:t,complete:e,options:n})=>{try{const{status:c}=o(transformCommand(r),t||[],{stdio:"inherit",...n});e?.(),c&&s(c)}catch(c){error(c?.message),s(1)}process.on("SIGINT",()=>{p.exitOverride(),s(0)})};export const getYolkConfig=()=>{const r=i("*.yolkrc*",{cwd:cwd,dot:!0});if(!r.length)return{};const o=n(cwd,r[0]);if(!t(o))return{};try{return JSON.parse(e(o,ENCODING))||{}}catch(error){return error(error.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}};export const getProjectConfigJSON=()=>{const r=n(cwd,"project.config.json");if(!t(r))return{};try{return JSON.parse(e(r,ENCODING))||{}}catch(error){return error(error.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}};export const getPackageJSON=()=>{const r=n(cwd,"package.json");if(!t(r))return{};try{return JSON.parse(e(r,ENCODING))||{}}catch(error){return error(error.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}};export const getConfigFilePath=r=>{const o=getYolkConfig();let e="";try{e=require.resolve(`@baic/${r}-config-yolk`)}catch(error){}const n=i(`*.${r}rc*`,{cwd:cwd,dot:!0}),c=n?.[0];return!1===o.strict&&c&&t(c)?c:t(e)?e:c};export const getEsLintConfigPath=()=>getConfigFilePath("eslint");export const getStyleLintConfigPath=()=>getConfigFilePath("stylelint");export const getPrettierConfigPath=()=>getConfigFilePath("prettier");export const getBiomeConfigPath=()=>getConfigFilePath("biome");
1
+ import{spawn as o,spawnSync as r}from"node:child_process";import{existsSync as t,readFileSync as e}from"node:fs";import{join as n}from"node:path";import c from"chalk";import s from"exit-x";import{globSync as i}from"glob";import{rimrafSync as a,windowsSync as m}from"rimraf";import{program as p}from"../compiled/commander";export const cwd=process.cwd();const g=console;export const ENCODING="utf-8";export const warn=o=>o&&g.log(c.yellow("warn -"),o);export const error=o=>o&&g.log(c.red("error -"),c.red(o));export const ready=o=>o&&g.log(c.green("ready -"),o);export const info=o=>o&&g.log(c.blue("info -"),o);const l=()=>"win32"===process.platform;export const transformCommand=o=>l()?`${o}.cmd`:o;export const rimrafSync=o=>l()?m(o):a(o);export const breakExit=()=>{warn("yolk break!"),s(0)};export const spawnCommand=({command:r,args:t,complete:e,exit:n=!0,options:c})=>{const i=o(transformCommand(r),t||[],{stdio:"inherit",shell:!0,windowsHide:!0,...c}).on("close",o=>{o?s(o):(e?.(),n&&s(0))});process.on("SIGINT",()=>{p.exitOverride(),i.kill(),s(0)})};export const spawnSyncCommand=({command:o,args:t,complete:e,options:n})=>{try{const{status:c}=r(transformCommand(o),t||[],{stdio:"inherit",shell:!0,windowsHide:!0,...n});e?.(),c&&s(c)}catch(c){error(c?.message),s(1)}process.on("SIGINT",()=>{p.exitOverride(),s(0)})};export const getYolkConfig=()=>{const o=i("*.yolkrc*",{cwd:cwd,dot:!0});if(!o.length)return{};const r=n(cwd,o[0]);if(!t(r))return{};try{return JSON.parse(e(r,ENCODING))||{}}catch(error){return error(error.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}};export const getProjectConfigJSON=()=>{const o=n(cwd,"project.config.json");if(!t(o))return{};try{return JSON.parse(e(o,ENCODING))||{}}catch(error){return error(error.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}};export const getPackageJSON=()=>{const o=n(cwd,"package.json");if(!t(o))return{};try{return JSON.parse(e(o,ENCODING))||{}}catch(error){return error(error.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}};export const getConfigFilePath=o=>{const r=getYolkConfig();let e="";try{e=require.resolve(`@baic/${o}-config-yolk`)}catch(error){}const n=i(`*.${o}rc*`,{cwd:cwd,dot:!0}),c=n?.[0];return!1===r.strict&&c&&t(c)?c:t(e)?e:c};export const getEsLintConfigPath=()=>getConfigFilePath("eslint");export const getStyleLintConfigPath=()=>getConfigFilePath("stylelint");export const getPrettierConfigPath=()=>getConfigFilePath("prettier");export const getBiomeConfigPath=()=>getConfigFilePath("biome");
package/es/yolk.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- import e from"lodash/isString";import t from"lodash/floor";import{execSync as o}from"node:child_process";import{chmodSync as a,copyFileSync as i,existsSync as r,readFileSync as n,statSync as s,writeFileSync as m}from"node:fs";import c from"node:os";import{basename as p,dirname as l,join as d,relative as u}from"node:path";import{defaultRunCommandOptions as g}from"@baic/yolk-test";import{globSync as f}from"glob";import h from"inquirer";import*as y from"miniprogram-ci";import{mkdirpSync as v}from"mkdirp";import{program as $}from"../compiled/commander";import b from"../compiled/js-yaml";import k from"../compiled/mustache";import j from"../package.json";import{breakExit as w,cwd as x,ENCODING as P,error as O,getPackageJSON as E,getProjectConfigJSON as q,getYolkConfig as _,info as S,ready as D,rimrafSync as Q,spawnCommand as R,spawnSyncCommand as N,transformCommand as L,warn as F}from"./_util";const M="##### CREATED BY YOLK #####",B=async(e,t,o)=>{const{type:a,projectName:c,packageManager:g}=await 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 HBuilderX uni-app template(umi framework)",value:"umi-mobile-uni-app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"taro-miniprogram template",value:"taro-miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:p(p(process.cwd()))},{type:"list",name:"packageManager",message:"\u9009\u62e9\u5305\u7ba1\u7406\u5668(\u9ed8\u8ba4\uff1apnpm\uff0c\u63a8\u8350\uff1apnpm)",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"}]}]),y={projectName:c,packageManager:"default"===g?"pnpm":g,yolkVersion:j.version};if("umi-mobile-uni-app"===a)return void F("\u6682\u4e0d\u652f\u6301");const $=t||d(__dirname,`../templates/${a}`);D(`\u590d\u5236\u6a21\u7248 ${p($)}`);const b=f("**/*",{cwd:$,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(b.forEach(t=>{if(!$)return;const o=d($,t);if(!s(o).isDirectory())if(t.endsWith(".tpl")){const a=n(o,P),i=d(e,t.replace(/\.tpl$/,"")),r=k.render(a,y);v(l(i)),D(`\u521b\u5efa ${u(e,i)}`),m(i,r,P)}else{D(`\u521b\u5efa ${t}`);const a=d(e,t);v(l(a)),i(o,a)}}),D("\u590d\u5236\u6a21\u7248 success!"),o&&r($)&&Q($)&&D(`\u7f13\u5b58\u5220\u9664 success! ${p($||"")}`),g)switch(D("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),g){case"default":case"pnpm":R({command:"pnpm",args:["install"]});break;case"yarn":R({command:"yarn",args:["install"]});break;case"npm":R({command:"npm",args:["install"]});break;default:}D("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")},K=(e,t)=>B(e,t,!0),C=()=>r(d(x,"project.config.json")),I=()=>{let e=r(d(x,"node_modules/.bin/umi"));try{if(!e)try{e=r(require.resolve("umi"))}catch(t){}}catch(t){}return e},T=()=>{let e=r(d(x,"node_modules/.bin/max"));try{if(!e)try{e=r(require.resolve("@umijs/max"))}catch(t){}}catch(t){}return e},U=()=>{const e=d(x,"project.config.json");if(r(e)){const t=require(e);return t.appid}return""},V=()=>r(d(x,"project.tt.json"))&&0===U().indexOf("tt"),W=()=>0===U().indexOf("20"),A=()=>{const e=_(),t=d(x,".husky/pre-commit"),o=d(x,".git/"),i=d(x,".git/hooks"),s=d(i,"pre-commit"),p=r(t),l=r(o),u=r(i),g=r(s),f=!1!==e.initPreCommit&&!p,h=[M,"npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",M].join(c.EOL),y=e=>{let t=e||"";return t&&t.indexOf(M)>=0&&(t=`${t.substring(0,t.indexOf(M))}${t.substring(t.lastIndexOf(M)+M.length)}`.replace(/(\r|\n)+$/gu,"")),t};if(l)if(f)if(u||(v(i),D("create .git/hooks")),g){try{a(s,"777")}catch($){O(`chmod ${s} failed: ${$.message}`)}const e=y(n(s,P).toString());m(s,(e.indexOf("#!/")<0?["#!/bin/sh"]:[]).concat([e,h]).filter(e=>!!e).join(c.EOL),P)}else m(s,["#!/bin/sh",h].join(c.EOL),P),D("create pre-commit");else if(g){const e=y(n(s,P).toString());m(s,e,P)}},X=()=>{const{ignorePreCommitRunLint:e,ignorePreCommitRunTest:t}=_();if(e?F("\u5df2\u8bed\u6cd5\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002"):(F("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),N({command:"lint-staged",args:["-c",require.resolve("./lintstagedrc"),"--allow-empty"]})),t)F("\u5df2\u5ffd\u7565test\u6267\u884c\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002");else{F("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684test\u6267\u884c\u3002");const e=E();e?.scripts&&e?.scripts?.test?.length&&N({command:"npm",args:["test"]})}},H=({mAppid:e,mProject:t,mPrivateKeyPath:a,mVersion:i,mDesc:n,mRobot:s,mQrcodeFormat:m,mQrcodeOutputDest:c,mPagePath:p,mSearchQuery:l})=>{let u="";try{u=r(d(x,".git"))?o("git log -1 --pretty=format:%H").toString():""}catch($){}const g=q(),f=e||g.appid,h=t||d(x,"dist"),v=a||d(x,`private.${f}.key`);if(r(h)){if(r(v)){const e=E(),t=i||e.version||g.version||"1.0.0",o=n||e.description||g.description,a=`${u?` commit: ${u};`:""}${o?` description: ${o};`:""}`;u&&S(`commit: ${u}`),S(`dist: ${h}`),S(`key: ${v}`),S(`appid: ${f}`),S(`version: ${t}`),S(`desc: ${a}`);const r=new y.Project({appid:f,type:"miniProgram",projectPath:h,privateKeyPath:v,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:f,options:{project:r,version:t,desc:a,setting:{...g.setting,es6:!1,es7:!1,minifyJS:!1,minifyWXML:!1,minifyWXSS:!1,minify:!1},robot:s,qrcodeFormat:m,qrcodeOutputDest:c,pagePath:p,searchQuery:l}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${v})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${h})`)},Y=()=>{let e="";try{e=o(`${L("npm")} view ${j.name} version`,{timeout:3e3}).toString().replace(/\n/g,"")}catch(a){}S(`yolk version: ${j.version}${e&&e!==j.version?`(latest\uff1a${e})`:""}`),S(`node version: ${process.version}`),S(`platform: ${c.platform()}`),S(`memory: ${t(c.freemem()/1024/1024)} MB(${t(c.totalmem()/1024/1024)} MB)`)},G=e=>e.option("--appid, --mAppid <appid>","\u5c0f\u7a0b\u5e8fappid").option("--project, --mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--privateKeyPath, --mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6\uff0c\u9ed8\u8ba4\uff1a{\u5f53\u524d\u76ee\u5f55}/private.{appid}.key").option("--version, --mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--desc, --mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--robot, --mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--qrcodeFormat, --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("--qrcodeOutputDest, --mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--pagePath, --mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--searchQuery, --mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570"),J=/(\w+)=('(.*)'|"(.*)"|(.*))/giu,z=e=>{process.env.DID_YOU_KNOW="none",process.env.VITE_CJS_IGNORE_WARNING="true";const t=[];return e?.forEach(e=>{if(J.test(e)){const[t,o]=e.split("=");process.env[t]=o,S(`\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a${t}=${o}`)}else t.push(e)}),t},Z=()=>{const{ignoreCheckNodeModulesMatchLockFile:e}=_();if(e)F("\u5ffd\u7565node_modules\u4e0elock\u6587\u4ef6\u5339\u914d\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u68c0\u67e5\u3002");else{const e=d(x,"pnpm-lock.yaml"),t=d(x,"yarn.lock");let o=!1;if(r(e)){const t=n(e,P),a=b.load(t);Object.keys(a.packages).forEach(e=>{const t=e.match(new RegExp(`^/${j.name}@([^()]+)`,"u"))||[];t?.length>=2&&t[1]===j.version&&(o=!0)})}else if(r(t)){const e=n(t,P),a=b.load(e);Object.keys(a.object).forEach(e=>{const t=e.match(new RegExp(`^${j.name}@([^(),]+)`,"u"))||[];t?.length>=2&&t[1]===j.version&&(o=!0)})}else o=!0;o||O("\u5f53\u524dnode_modules\u4e0elock\u6587\u4ef6\u4e0d\u5339\u914d\uff0c\u8bf7\u68c0\u67e5\u5e76\u91cd\u65b0\u5b89\u88c5\u3002")}},ee=()=>{A(),process.argv.length>2?($.version(j.version,"-v,--version","\u8f93\u51fa\u7248\u672c\u53f7").usage("[command] [options]"),$.command("init").description("\u521d\u59cb\u5316\u9879\u76ee").option("--clone <template>","\u5982\u679c\u9700\u8981\uff0c\u53ef\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248\uff0c\u9ed8\u8ba4\u53d6cli\u9ed8\u8ba4\u6a21\u7248").action(({clone:e},{args:t})=>{if(Y(),D("yolk init \u5f00\u59cb"),e){const o=".yolk",a=d(x,o);r(a)&&Q(a)&&D(`\u7f13\u5b58\u5220\u9664 success! ${a}`),R({command:"git",args:["clone","-b","master","--depth","1",e,o].concat(t)}),K(x,a)}else B(x)}),$.command("start").description("\u542f\u52a8\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{Y(),Z();const o=z(t);C()?V()?R({command:"taro",args:["build","--type","tt","--watch"].concat(o)}):W()?R({command:"taro",args:["build","--type","alipay","--watch"].concat(o)}):R({command:"taro",args:["build","--type","weapp","--watch"].concat(o)}):e?R({command:"dumi",args:["dev"].concat(o)}):T()?R({command:"max",args:["dev"].concat(o)}):I()?R({command:"umi",args:["dev"].concat(o)}):w()}),$.command("build").description("\u7f16\u8bd1\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{Y(),Z();const o=z(t);if(C())V()?R({command:"taro",args:["build","--type","tt"].concat(o)}):W()?R({command:"taro",args:["build","--type","alipay"].concat(o)}):R({command:"taro",args:["build","--type","weapp"].concat(o)});else if(e)R({command:"dumi",args:["build"].concat(o)});else if(T())R({command:"max",args:["setup"].concat(o),complete:()=>R({command:"max",args:["build"].concat(o)}),exit:!1});else if(I()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);R(t>=4?{command:"umi",args:["setup"].concat(o),complete:()=>R({command:"umi",args:["build"].concat(o)}),exit:!1}:{command:"umi",args:["generate","tmp"].concat(o),complete:()=>R({command:"umi",args:["build"].concat(o)}),exit:!1})}else w()}),$.command("init-pre-commit").description("\u521d\u59cb\u5316 commit hook").action(A),$.command("pre-commit").description("\u6267\u884ccommit hook").action(X),G($.command("miniprogram-upload").description("\u4f7f\u7528 miniprogram-ci \u4e0a\u4f20\u5c0f\u7a0b\u5e8f")).action(async t=>{if(C())if(V());else if(W());else{const{appid:o,options:{project:a,version:i,desc:r,setting:n,robot:s}}=H(t);S(`${o} \u4e0a\u4f20\u5f00\u59cb`),await y.upload({project:a,version:i,desc:r,setting:n,robot:s,onProgressUpdate:t=>{if(e(t))S(`task: ${t}`);else{const{status:e,message:o}=t;S(`task(${e}): ${o}`)}}}),D(`${o} \u4e0a\u4f20\u5b8c\u6210`)}else O("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),G($.command("miniprogram-preview").description("\u4f7f\u7528 miniprogram-ci \u9884\u89c8\u5c0f\u7a0b\u5e8f")).action(async t=>{if(C())if(V());else if(W());else{const{appid:o,options:{project:a,version:i,desc:r,setting:n,robot:s,qrcodeFormat:m,qrcodeOutputDest:c,pagePath:p,searchQuery:l}}=H(t);S(`${o} \u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),await y.preview({project:a,version:i,desc:r,setting:n,robot:s,qrcodeFormat:m,qrcodeOutputDest:c,pagePath:p,searchQuery:l,onProgressUpdate:t=>{if(e(t))S(`task: ${t}`);else{const{status:e,message:o}=t;S(`task(${e}): ${o}`)}}}),D(`${o} \u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}else O("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),$.command("exec").description("\u6267\u884cts\u6587\u4ef6").argument("<path>","\u6267\u884c\u7684ts\u6587\u4ef6").action((e,t,{args:o})=>{const a=z(o);R({command:"tsx",args:[e].concat(a)})}),(e=>{let t=$.command("test").description("\u6267\u884c\u6d4b\u8bd5");return e.forEach(({name:e,isBoolean:o,description:a,defaultValue:i})=>{t=t.option(o?`--${e}`:`--${e} <${e}>`,a,i)}),t})(g).action((e,{args:t})=>{const o=g.filter(({isBoolean:e})=>!!e).map(({name:e})=>e),a=z(t);let i=["run"];if(Object.keys(e).forEach(t=>{const a=e[t];i=i.concat(a?[o.indexOf(t)>=0?`--${t}`:`--${t}=${a}`]:[])}),T())R({command:"max",args:["setup"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1});else if(I()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);R(t>=4?{command:"umi",args:["setup"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1}:{command:"umi",args:["generate","tmp"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1})}else R({command:"yest",args:i.concat(a)})}),$.parse(process.argv)):w()};ee();
2
+ import{execSync as e}from"node:child_process";import{chmodSync as t,copyFileSync as o,existsSync as a,readFileSync as i,statSync as r,writeFileSync as n}from"node:fs";import s from"node:os";import{basename as m,dirname as c,join as p,relative as d}from"node:path";import{floor as l,isString as u}from"lodash-es";import{defaultRunCommandOptions as g}from"@baic/yolk-test";import{globSync as f}from"glob";import y from"inquirer";import*as h from"miniprogram-ci";import{mkdirpSync as v}from"mkdirp";import{program as $}from"../compiled/commander";import b from"../compiled/js-yaml";import k from"../compiled/mustache";import j from"../package.json";import{breakExit as w,cwd as x,ENCODING as P,error as O,getPackageJSON as E,getProjectConfigJSON as q,getYolkConfig as _,info as D,ready as S,rimrafSync as Q,spawnCommand as R,spawnSyncCommand as N,transformCommand as L,warn as F}from"./_util";const M="##### CREATED BY YOLK #####",B=async(e,t,s)=>{const{type:l,projectName:u,packageManager:g}=await y.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 HBuilderX uni-app template(umi framework)",value:"umi-mobile-uni-app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"taro-miniprogram template",value:"taro-miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:m(m(process.cwd()))},{type:"list",name:"packageManager",message:"\u9009\u62e9\u5305\u7ba1\u7406\u5668(\u9ed8\u8ba4\uff1apnpm\uff0c\u63a8\u8350\uff1apnpm)",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"}]}]),h={projectName:u,packageManager:"default"===g?"pnpm":g,yolkVersion:j.version};if("umi-mobile-uni-app"===l)return void F("\u6682\u4e0d\u652f\u6301");const $=t||p(__dirname,`../templates/${l}`);S(`\u590d\u5236\u6a21\u7248 ${m($)}`);const b=f("**/*",{cwd:$,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(b.forEach(t=>{if(!$)return;const a=p($,t);if(!r(a).isDirectory())if(t.endsWith(".tpl")){const o=i(a,P),r=p(e,t.replace(/\.tpl$/,"")),s=k.render(o,h);v(c(r)),S(`\u521b\u5efa ${d(e,r)}`),n(r,s,P)}else{S(`\u521b\u5efa ${t}`);const i=p(e,t);v(c(i)),o(a,i)}}),S("\u590d\u5236\u6a21\u7248 success!"),s&&a($)&&Q($)&&S(`\u7f13\u5b58\u5220\u9664 success! ${m($||"")}`),g)switch(S("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),g){case"default":case"pnpm":R({command:"pnpm",args:["install"]});break;case"yarn":R({command:"yarn",args:["install"]});break;case"npm":R({command:"npm",args:["install"]});break;default:}S("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")},K=(e,t)=>B(e,t,!0),C=()=>a(p(x,"project.config.json")),I=()=>{let e=a(p(x,"node_modules/.bin/umi"));try{if(!e)try{e=a(require.resolve("umi"))}catch(t){}}catch(t){}return e},T=()=>{let e=a(p(x,"node_modules/.bin/max"));try{if(!e)try{e=a(require.resolve("@umijs/max"))}catch(t){}}catch(t){}return e},U=()=>{const e=p(x,"project.config.json");if(a(e)){const t=require(e);return t.appid}return""},V=()=>a(p(x,"project.tt.json"))&&0===U().indexOf("tt"),W=()=>0===U().indexOf("20"),A=()=>{const e=_(),o=p(x,".husky/pre-commit"),r=p(x,".git/"),m=p(x,".git/hooks"),c=p(m,"pre-commit"),d=a(o),l=a(r),u=a(m),g=a(c),f=!1!==e.initPreCommit&&!d,y=[M,"npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",M].join(s.EOL),h=e=>{let t=e||"";return t&&t.indexOf(M)>=0&&(t=`${t.substring(0,t.indexOf(M))}${t.substring(t.lastIndexOf(M)+M.length)}`.replace(/(\r|\n)+$/gu,"")),t};if(l)if(f)if(u||(v(m),S("create .git/hooks")),g){try{t(c,"777")}catch($){O(`chmod ${c} failed: ${$.message}`)}const e=h(i(c,P).toString());n(c,(e.indexOf("#!/")<0?["#!/bin/sh"]:[]).concat([e,y]).filter(e=>!!e).join(s.EOL),P)}else n(c,["#!/bin/sh",y].join(s.EOL),P),S("create pre-commit");else if(g){const e=h(i(c,P).toString());n(c,e,P)}},X=()=>{const{ignorePreCommitRunLint:e,ignorePreCommitRunTest:t}=_();if(e?F("\u5df2\u8bed\u6cd5\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002"):(F("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),N({command:"lint-staged",args:["-c",require.resolve("./lintstagedrc"),"--allow-empty"]})),t)F("\u5df2\u5ffd\u7565test\u6267\u884c\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002");else{F("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684test\u6267\u884c\u3002");const e=E();e?.scripts&&e?.scripts?.test?.length&&N({command:"npm",args:["test"]})}},H=({mAppid:t,mProject:o,mPrivateKeyPath:i,mVersion:r,mDesc:n,mRobot:s,mQrcodeFormat:m,mQrcodeOutputDest:c,mPagePath:d,mSearchQuery:l})=>{let u="";try{u=a(p(x,".git"))?e("git log -1 --pretty=format:%H").toString():""}catch($){}const g=q(),f=t||g.appid,y=o||p(x,"dist"),v=i||p(x,`private.${f}.key`);if(a(y)){if(a(v)){const e=E(),t=r||e.version||g.version||"1.0.0",o=n||e.description||g.description,a=`${u?` commit: ${u};`:""}${o?` description: ${o};`:""}`;u&&D(`commit: ${u}`),D(`dist: ${y}`),D(`key: ${v}`),D(`appid: ${f}`),D(`version: ${t}`),D(`desc: ${a}`);const i=new h.Project({appid:f,type:"miniProgram",projectPath:y,privateKeyPath:v,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:f,options:{project:i,version:t,desc:a,setting:{...g.setting,es6:!1,es7:!1,minifyJS:!1,minifyWXML:!1,minifyWXSS:!1,minify:!1},robot:s,qrcodeFormat:m,qrcodeOutputDest:c,pagePath:d,searchQuery:l}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${v})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${y})`)},Y=()=>{let t="";try{t=e(`${L("npm")} view ${j.name} version`,{timeout:3e3}).toString().replace(/\n/g,"")}catch(o){}D(`yolk version: ${j.version}${t&&t!==j.version?`(latest\uff1a${t})`:""}`),D(`node version: ${process.version}`),D(`platform: ${s.platform()}`),D(`memory: ${l(s.freemem()/1024/1024)} MB(${l(s.totalmem()/1024/1024)} MB)`)},G=e=>e.option("--appid, --mAppid <appid>","\u5c0f\u7a0b\u5e8fappid").option("--project, --mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--privateKeyPath, --mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6\uff0c\u9ed8\u8ba4\uff1a{\u5f53\u524d\u76ee\u5f55}/private.{appid}.key").option("--version, --mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--desc, --mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--robot, --mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--qrcodeFormat, --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("--qrcodeOutputDest, --mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--pagePath, --mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--searchQuery, --mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570"),J=/(\w+)=('(.*)'|"(.*)"|(.*))/giu,z=e=>{process.env.DID_YOU_KNOW="none",process.env.VITE_CJS_IGNORE_WARNING="true";const t=[];return e?.forEach(e=>{if(J.test(e)){const[t,o]=e.split("=");process.env[t]=o,D(`\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a${t}=${o}`)}else t.push(e)}),t},Z=()=>{const{ignoreCheckNodeModulesMatchLockFile:e}=_();if(e)F("\u5ffd\u7565node_modules\u4e0elock\u6587\u4ef6\u5339\u914d\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u68c0\u67e5\u3002");else{const e=p(x,"pnpm-lock.yaml"),t=p(x,"yarn.lock");let o=!1;if(a(e)){const t=i(e,P),a=b.load(t);Object.keys(a.packages).forEach(e=>{const t=e.match(new RegExp(`^/${j.name}@([^()]+)`,"u"))||[];t?.length>=2&&t[1]===j.version&&(o=!0)})}else if(a(t)){const e=i(t,P),a=b.load(e);Object.keys(a.object).forEach(e=>{const t=e.match(new RegExp(`^${j.name}@([^(),]+)`,"u"))||[];t?.length>=2&&t[1]===j.version&&(o=!0)})}else o=!0;o||O("\u5f53\u524dnode_modules\u4e0elock\u6587\u4ef6\u4e0d\u5339\u914d\uff0c\u8bf7\u68c0\u67e5\u5e76\u91cd\u65b0\u5b89\u88c5\u3002")}},ee=()=>{A(),process.argv.length>2?($.version(j.version,"-v,--version","\u8f93\u51fa\u7248\u672c\u53f7").usage("[command] [options]"),$.command("init").description("\u521d\u59cb\u5316\u9879\u76ee").option("--clone <template>","\u5982\u679c\u9700\u8981\uff0c\u53ef\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248\uff0c\u9ed8\u8ba4\u53d6cli\u9ed8\u8ba4\u6a21\u7248").action(({clone:e},{args:t})=>{if(Y(),S("yolk init \u5f00\u59cb"),e){const o=".yolk",i=p(x,o);a(i)&&Q(i)&&S(`\u7f13\u5b58\u5220\u9664 success! ${i}`),R({command:"git",args:["clone","-b","master","--depth","1",e,o].concat(t)}),K(x,i)}else B(x)}),$.command("start").description("\u542f\u52a8\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{Y(),Z();const o=z(t);C()?V()?R({command:"taro",args:["build","--type","tt","--watch"].concat(o)}):W()?R({command:"taro",args:["build","--type","alipay","--watch"].concat(o)}):R({command:"taro",args:["build","--type","weapp","--watch"].concat(o)}):e?R({command:"dumi",args:["dev"].concat(o)}):T()?R({command:"max",args:["dev"].concat(o)}):I()?R({command:"umi",args:["dev"].concat(o)}):w()}),$.command("build").description("\u7f16\u8bd1\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{Y(),Z();const o=z(t);if(C())V()?R({command:"taro",args:["build","--type","tt"].concat(o)}):W()?R({command:"taro",args:["build","--type","alipay"].concat(o)}):R({command:"taro",args:["build","--type","weapp"].concat(o)});else if(e)R({command:"dumi",args:["build"].concat(o)});else if(T())R({command:"max",args:["setup"].concat(o),complete:()=>R({command:"max",args:["build"].concat(o)}),exit:!1});else if(I()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);R(t>=4?{command:"umi",args:["setup"].concat(o),complete:()=>R({command:"umi",args:["build"].concat(o)}),exit:!1}:{command:"umi",args:["generate","tmp"].concat(o),complete:()=>R({command:"umi",args:["build"].concat(o)}),exit:!1})}else w()}),$.command("init-pre-commit").description("\u521d\u59cb\u5316 commit hook").action(A),$.command("pre-commit").description("\u6267\u884ccommit hook").action(X),G($.command("miniprogram-upload").description("\u4f7f\u7528 miniprogram-ci \u4e0a\u4f20\u5c0f\u7a0b\u5e8f")).action(async e=>{if(C())if(V());else if(W());else{const{appid:t,options:{project:o,version:a,desc:i,setting:r,robot:n}}=H(e);D(`${t} \u4e0a\u4f20\u5f00\u59cb`),await h.upload({project:o,version:a,desc:i,setting:r,robot:n,onProgressUpdate:e=>{if(u(e))D(`task: ${e}`);else{const{status:t,message:o}=e;D(`task(${t}): ${o}`)}}}),S(`${t} \u4e0a\u4f20\u5b8c\u6210`)}else O("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),G($.command("miniprogram-preview").description("\u4f7f\u7528 miniprogram-ci \u9884\u89c8\u5c0f\u7a0b\u5e8f")).action(async e=>{if(C())if(V());else if(W());else{const{appid:t,options:{project:o,version:a,desc:i,setting:r,robot:n,qrcodeFormat:s,qrcodeOutputDest:m,pagePath:c,searchQuery:p}}=H(e);D(`${t} \u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),await h.preview({project:o,version:a,desc:i,setting:r,robot:n,qrcodeFormat:s,qrcodeOutputDest:m,pagePath:c,searchQuery:p,onProgressUpdate:e=>{if(u(e))D(`task: ${e}`);else{const{status:t,message:o}=e;D(`task(${t}): ${o}`)}}}),S(`${t} \u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}else O("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),$.command("exec").description("\u6267\u884cts\u6587\u4ef6").argument("<path>","\u6267\u884c\u7684ts\u6587\u4ef6").action((e,t,{args:o})=>{const a=z(o);R({command:"tsx",args:[e].concat(a)})}),(e=>{let t=$.command("test").description("\u6267\u884c\u6d4b\u8bd5");return e.forEach(({name:e,isBoolean:o,description:a,defaultValue:i})=>{t=t.option(o?`--${e}`:`--${e} <${e}>`,a,i)}),t})(g).action((e,{args:t})=>{const o=g.filter(({isBoolean:e})=>!!e).map(({name:e})=>e),a=z(t);let i=["run"];if(Object.keys(e).forEach(t=>{const a=e[t];i=i.concat(a?[o.indexOf(t)>=0?`--${t}`:`--${t}=${a}`]:[])}),T())R({command:"max",args:["setup"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1});else if(I()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);R(t>=4?{command:"umi",args:["setup"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1}:{command:"umi",args:["generate","tmp"].concat(a),complete:()=>R({command:"yest",args:i.concat(a)}),exit:!1})}else R({command:"yest",args:i.concat(a)})}),$.parse(process.argv)):w()};ee();
package/lib/_util.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.warn=exports.transformCommand=exports.spawnSyncCommand=exports.spawnCommand=exports.rimrafSync=exports.ready=exports.info=exports.getYolkConfig=exports.getStyleLintConfigPath=exports.getProjectConfigJSON=exports.getPrettierConfigPath=exports.getPackageJSON=exports.getEsLintConfigPath=exports.getConfigFilePath=exports.getBiomeConfigPath=exports.error=exports.cwd=exports.breakExit=exports.ENCODING=void 0;var t=require("node:child_process"),r=require("node:fs"),o=require("node:path"),s=e(require("chalk")),n=e(require("exit-x")),i=require("glob"),c=require("rimraf"),a=require("../compiled/commander");const p=exports.cwd=process.cwd(),l=console,g=exports.ENCODING="utf-8",x=e=>e&&l.log(s.default.yellow("warn -"),e);exports.warn=x;const d=e=>e&&l.log(s.default.red("error -"),s.default.red(e));exports.error=d;const f=e=>e&&l.log(s.default.green("ready -"),e);exports.ready=f;const u=e=>e&&l.log(s.default.blue("info -"),e);exports.info=u;const m=()=>"win32"===process.platform,y=e=>m()?`${e}.cmd`:e;exports.transformCommand=y;const S=e=>m()?(0,c.windowsSync)(e):(0,c.rimrafSync)(e);exports.rimrafSync=S;const h=()=>{x("yolk break!"),(0,n.default)(0)};exports.breakExit=h;const C=({command:e,args:r,complete:o,exit:s=!0,options:i})=>{const c=(0,t.spawn)(y(e),r||[],{stdio:"inherit",...i}).on("close",e=>{e?(0,n.default)(e):(o?.(),s&&(0,n.default)(0))});process.on("SIGINT",()=>{a.program.exitOverride(),c.kill(),(0,n.default)(0)})};exports.spawnCommand=C;const w=({command:e,args:r,complete:o,options:s})=>{try{const{status:i}=(0,t.spawnSync)(y(e),r||[],{stdio:"inherit",...s});o?.(),i&&(0,n.default)(i)}catch(i){d(i?.message),(0,n.default)(1)}process.on("SIGINT",()=>{a.program.exitOverride(),(0,n.default)(0)})};exports.spawnSyncCommand=w;const P=()=>{const e=(0,i.globSync)("*.yolkrc*",{cwd:p,dot:!0});if(!e.length)return{};const t=(0,o.join)(p,e[0]);if(!(0,r.existsSync)(t))return{};try{return JSON.parse((0,r.readFileSync)(t,g))||{}}catch(d){return d(d.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}};exports.getYolkConfig=P;const k=()=>{const e=(0,o.join)(p,"project.config.json");if(!(0,r.existsSync)(e))return{};try{return JSON.parse((0,r.readFileSync)(e,g))||{}}catch(d){return d(d.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}};exports.getProjectConfigJSON=k;const N=()=>{const e=(0,o.join)(p,"package.json");if(!(0,r.existsSync)(e))return{};try{return JSON.parse((0,r.readFileSync)(e,g))||{}}catch(d){return d(d.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}};exports.getPackageJSON=N;const b=e=>{const t=P();let o="";try{o=require.resolve(`@baic/${e}-config-yolk`)}catch(d){}const s=(0,i.globSync)(`*.${e}rc*`,{cwd:p,dot:!0}),n=s?.[0];return!1===t.strict&&n&&(0,r.existsSync)(n)?n:(0,r.existsSync)(o)?o:n};exports.getConfigFilePath=b;const j=()=>b("eslint");exports.getEsLintConfigPath=j;const O=()=>b("stylelint");exports.getStyleLintConfigPath=O;const q=()=>b("prettier");exports.getPrettierConfigPath=q;const v=()=>b("biome");exports.getBiomeConfigPath=v;
1
+ "use strict";var e=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.warn=exports.transformCommand=exports.spawnSyncCommand=exports.spawnCommand=exports.rimrafSync=exports.ready=exports.info=exports.getYolkConfig=exports.getStyleLintConfigPath=exports.getProjectConfigJSON=exports.getPrettierConfigPath=exports.getPackageJSON=exports.getEsLintConfigPath=exports.getConfigFilePath=exports.getBiomeConfigPath=exports.error=exports.cwd=exports.breakExit=exports.ENCODING=void 0;var t=require("node:child_process"),r=require("node:fs"),o=require("node:path"),s=e(require("chalk")),n=e(require("exit-x")),i=require("glob"),c=require("rimraf"),a=require("../compiled/commander");const p=exports.cwd=process.cwd(),l=console,d=exports.ENCODING="utf-8",g=e=>e&&l.log(s.default.yellow("warn -"),e);exports.warn=g;const x=e=>e&&l.log(s.default.red("error -"),s.default.red(e));exports.error=x;const f=e=>e&&l.log(s.default.green("ready -"),e);exports.ready=f;const u=e=>e&&l.log(s.default.blue("info -"),e);exports.info=u;const m=()=>"win32"===process.platform,y=e=>m()?`${e}.cmd`:e;exports.transformCommand=y;const S=e=>m()?(0,c.windowsSync)(e):(0,c.rimrafSync)(e);exports.rimrafSync=S;const h=()=>{g("yolk break!"),(0,n.default)(0)};exports.breakExit=h;const w=({command:e,args:r,complete:o,exit:s=!0,options:i})=>{const c=(0,t.spawn)(y(e),r||[],{stdio:"inherit",shell:!0,windowsHide:!0,...i}).on("close",e=>{e?(0,n.default)(e):(o?.(),s&&(0,n.default)(0))});process.on("SIGINT",()=>{a.program.exitOverride(),c.kill(),(0,n.default)(0)})};exports.spawnCommand=w;const C=({command:e,args:r,complete:o,options:s})=>{try{const{status:i}=(0,t.spawnSync)(y(e),r||[],{stdio:"inherit",shell:!0,windowsHide:!0,...s});o?.(),i&&(0,n.default)(i)}catch(i){x(i?.message),(0,n.default)(1)}process.on("SIGINT",()=>{a.program.exitOverride(),(0,n.default)(0)})};exports.spawnSyncCommand=C;const P=()=>{const e=(0,i.globSync)("*.yolkrc*",{cwd:p,dot:!0});if(!e.length)return{};const t=(0,o.join)(p,e[0]);if(!(0,r.existsSync)(t))return{};try{return JSON.parse((0,r.readFileSync)(t,d))||{}}catch(x){return x(x.message||".yolkrc\u8f6c\u6362\u9519\u8bef"),{}}};exports.getYolkConfig=P;const k=()=>{const e=(0,o.join)(p,"project.config.json");if(!(0,r.existsSync)(e))return{};try{return JSON.parse((0,r.readFileSync)(e,d))||{}}catch(x){return x(x.message||"project.config.json\u8f6c\u6362\u9519\u8bef"),{}}};exports.getProjectConfigJSON=k;const N=()=>{const e=(0,o.join)(p,"package.json");if(!(0,r.existsSync)(e))return{};try{return JSON.parse((0,r.readFileSync)(e,d))||{}}catch(x){return x(x.message||"package.json\u8f6c\u6362\u9519\u8bef"),{}}};exports.getPackageJSON=N;const b=e=>{const t=P();let o="";try{o=require.resolve(`@baic/${e}-config-yolk`)}catch(x){}const s=(0,i.globSync)(`*.${e}rc*`,{cwd:p,dot:!0}),n=s?.[0];return!1===t.strict&&n&&(0,r.existsSync)(n)?n:(0,r.existsSync)(o)?o:n};exports.getConfigFilePath=b;const j=()=>b("eslint");exports.getEsLintConfigPath=j;const O=()=>b("stylelint");exports.getStyleLintConfigPath=O;const q=()=>b("prettier");exports.getPrettierConfigPath=q;const v=()=>b("biome");exports.getBiomeConfigPath=v;
package/lib/yolk.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #! /usr/bin/env node
2
- "use strict";var e=require("@babel/runtime/helpers/interopRequireDefault"),t=e(require("lodash/isString")),a=e(require("lodash/floor")),o=require("node:child_process"),n=require("node:fs"),r=e(require("node:os")),i=require("node:path"),s=require("@baic/yolk-test"),c=require("glob"),m=e(require("inquirer")),p=h(require("miniprogram-ci")),d=require("mkdirp"),l=require("../compiled/commander"),u=e(require("../compiled/js-yaml")),g=e(require("../compiled/mustache")),f=e(require("../package.json")),y=require("./_util");function w(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,a=new WeakMap;return(w=function(e){return e?a:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var a=w(t);if(a&&a.has(e))return a.get(e);var o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(o,r,i):o[r]=e[r]}return o.default=e,a&&a.set(e,o),o}const b="##### CREATED BY YOLK #####",v=async(e,t,a)=>{const{type:o,projectName:r,packageManager:s}=await 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 HBuilderX uni-app template(umi framework)",value:"umi-mobile-uni-app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"taro-miniprogram template",value:"taro-miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:(0,i.basename)((0,i.basename)(process.cwd()))},{type:"list",name:"packageManager",message:"\u9009\u62e9\u5305\u7ba1\u7406\u5668(\u9ed8\u8ba4\uff1apnpm\uff0c\u63a8\u8350\uff1apnpm)",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"}]}]),p={projectName:r,packageManager:"default"===s?"pnpm":s,yolkVersion:f.default.version};if("umi-mobile-uni-app"===o)return void(0,y.warn)("\u6682\u4e0d\u652f\u6301");const l=t||(0,i.join)(__dirname,`../templates/${o}`);(0,y.ready)(`\u590d\u5236\u6a21\u7248 ${(0,i.basename)(l)}`);const u=(0,c.globSync)("**/*",{cwd:l,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(u.forEach(t=>{if(!l)return;const a=(0,i.join)(l,t);if(!(0,n.statSync)(a).isDirectory())if(t.endsWith(".tpl")){const o=(0,n.readFileSync)(a,y.ENCODING),r=(0,i.join)(e,t.replace(/\.tpl$/,"")),s=g.default.render(o,p);(0,d.mkdirpSync)((0,i.dirname)(r)),(0,y.ready)(`\u521b\u5efa ${(0,i.relative)(e,r)}`),(0,n.writeFileSync)(r,s,y.ENCODING)}else{(0,y.ready)(`\u521b\u5efa ${t}`);const o=(0,i.join)(e,t);(0,d.mkdirpSync)((0,i.dirname)(o)),(0,n.copyFileSync)(a,o)}}),(0,y.ready)("\u590d\u5236\u6a21\u7248 success!"),a&&(0,n.existsSync)(l)&&(0,y.rimrafSync)(l)&&(0,y.ready)(`\u7f13\u5b58\u5220\u9664 success! ${(0,i.basename)(l||"")}`),s)switch((0,y.ready)("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),s){case"default":case"pnpm":(0,y.spawnCommand)({command:"pnpm",args:["install"]});break;case"yarn":(0,y.spawnCommand)({command:"yarn",args:["install"]});break;case"npm":(0,y.spawnCommand)({command:"npm",args:["install"]});break;default:}(0,y.ready)("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")},k=(e,t)=>v(e,t,!0),j=()=>(0,n.existsSync)((0,i.join)(y.cwd,"project.config.json")),S=()=>{let e=(0,n.existsSync)((0,i.join)(y.cwd,"node_modules/.bin/umi"));try{if(!e)try{e=(0,n.existsSync)(require.resolve("umi"))}catch(t){}}catch(t){}return e},$=()=>{let e=(0,n.existsSync)((0,i.join)(y.cwd,"node_modules/.bin/max"));try{if(!e)try{e=(0,n.existsSync)(require.resolve("@umijs/max"))}catch(t){}}catch(t){}return e},x=()=>{const e=(0,i.join)(y.cwd,"project.config.json");if((0,n.existsSync)(e)){const t=require(e);return t.appid}return""},C=()=>(0,n.existsSync)((0,i.join)(y.cwd,"project.tt.json"))&&0===x().indexOf("tt"),O=()=>0===x().indexOf("20"),q=()=>{const e=(0,y.getYolkConfig)(),t=(0,i.join)(y.cwd,".husky/pre-commit"),a=(0,i.join)(y.cwd,".git/"),o=(0,i.join)(y.cwd,".git/hooks"),s=(0,i.join)(o,"pre-commit"),c=(0,n.existsSync)(t),m=(0,n.existsSync)(a),p=(0,n.existsSync)(o),l=(0,n.existsSync)(s),u=!1!==e.initPreCommit&&!c,g=[b,"npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",b].join(r.default.EOL),f=e=>{let t=e||"";return t&&t.indexOf(b)>=0&&(t=`${t.substring(0,t.indexOf(b))}${t.substring(t.lastIndexOf(b)+b.length)}`.replace(/(\r|\n)+$/gu,"")),t};if(m)if(u)if(p||((0,d.mkdirpSync)(o),(0,y.ready)("create .git/hooks")),l){try{(0,n.chmodSync)(s,"777")}catch(w){(0,y.error)(`chmod ${s} failed: ${w.message}`)}const e=f((0,n.readFileSync)(s,y.ENCODING).toString());(0,n.writeFileSync)(s,(e.indexOf("#!/")<0?["#!/bin/sh"]:[]).concat([e,g]).filter(e=>!!e).join(r.default.EOL),y.ENCODING)}else(0,n.writeFileSync)(s,["#!/bin/sh",g].join(r.default.EOL),y.ENCODING),(0,y.ready)("create pre-commit");else if(l){const e=f((0,n.readFileSync)(s,y.ENCODING).toString());(0,n.writeFileSync)(s,e,y.ENCODING)}},P=()=>{const{ignorePreCommitRunLint:e,ignorePreCommitRunTest:t}=(0,y.getYolkConfig)();if(e?(0,y.warn)("\u5df2\u8bed\u6cd5\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002"):((0,y.warn)("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),(0,y.spawnSyncCommand)({command:"lint-staged",args:["-c",require.resolve("./lintstagedrc"),"--allow-empty"]})),t)(0,y.warn)("\u5df2\u5ffd\u7565test\u6267\u884c\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002");else{(0,y.warn)("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684test\u6267\u884c\u3002");const e=(0,y.getPackageJSON)();e?.scripts&&e?.scripts?.test?.length&&(0,y.spawnSyncCommand)({command:"npm",args:["test"]})}},E=({mAppid:e,mProject:t,mPrivateKeyPath:a,mVersion:r,mDesc:s,mRobot:c,mQrcodeFormat:m,mQrcodeOutputDest:d,mPagePath:l,mSearchQuery:u})=>{let g="";try{g=(0,n.existsSync)((0,i.join)(y.cwd,".git"))?(0,o.execSync)("git log -1 --pretty=format:%H").toString():""}catch(v){}const f=(0,y.getProjectConfigJSON)(),w=e||f.appid,h=t||(0,i.join)(y.cwd,"dist"),b=a||(0,i.join)(y.cwd,`private.${w}.key`);if((0,n.existsSync)(h)){if((0,n.existsSync)(b)){const e=(0,y.getPackageJSON)(),t=r||e.version||f.version||"1.0.0",a=s||e.description||f.description,o=`${g?` commit: ${g};`:""}${a?` description: ${a};`:""}`;g&&(0,y.info)(`commit: ${g}`),(0,y.info)(`dist: ${h}`),(0,y.info)(`key: ${b}`),(0,y.info)(`appid: ${w}`),(0,y.info)(`version: ${t}`),(0,y.info)(`desc: ${o}`);const n=new p.Project({appid:w,type:"miniProgram",projectPath:h,privateKeyPath:b,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:w,options:{project:n,version:t,desc:o,setting:{...f.setting,es6:!1,es7:!1,minifyJS:!1,minifyWXML:!1,minifyWXSS:!1,minify:!1},robot:c,qrcodeFormat:m,qrcodeOutputDest:d,pagePath:l,searchQuery:u}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${b})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${h})`)},N=()=>{let e="";try{e=(0,o.execSync)(`${(0,y.transformCommand)("npm")} view ${f.default.name} version`,{timeout:3e3}).toString().replace(/\n/g,"")}catch(t){}(0,y.info)(`yolk version: ${f.default.version}${e&&e!==f.default.version?`(latest\uff1a${e})`:""}`),(0,y.info)(`node version: ${process.version}`),(0,y.info)(`platform: ${r.default.platform()}`),(0,y.info)(`memory: ${(0,a.default)(r.default.freemem()/1024/1024)} MB(${(0,a.default)(r.default.totalmem()/1024/1024)} MB)`)},D=e=>e.option("--appid, --mAppid <appid>","\u5c0f\u7a0b\u5e8fappid").option("--project, --mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--privateKeyPath, --mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6\uff0c\u9ed8\u8ba4\uff1a{\u5f53\u524d\u76ee\u5f55}/private.{appid}.key").option("--version, --mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--desc, --mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--robot, --mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--qrcodeFormat, --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("--qrcodeOutputDest, --mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--pagePath, --mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--searchQuery, --mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570"),_=/(\w+)=('(.*)'|"(.*)"|(.*))/giu,F=e=>{process.env.DID_YOU_KNOW="none",process.env.VITE_CJS_IGNORE_WARNING="true";const t=[];return e?.forEach(e=>{if(_.test(e)){const[t,a]=e.split("=");process.env[t]=a,(0,y.info)(`\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a${t}=${a}`)}else t.push(e)}),t},I=()=>{const{ignoreCheckNodeModulesMatchLockFile:e}=(0,y.getYolkConfig)();if(e)(0,y.warn)("\u5ffd\u7565node_modules\u4e0elock\u6587\u4ef6\u5339\u914d\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u68c0\u67e5\u3002");else{const e=(0,i.join)(y.cwd,"pnpm-lock.yaml"),t=(0,i.join)(y.cwd,"yarn.lock");let a=!1;if((0,n.existsSync)(e)){const t=(0,n.readFileSync)(e,y.ENCODING),o=u.default.load(t);Object.keys(o.packages).forEach(e=>{const t=e.match(new RegExp(`^/${f.default.name}@([^()]+)`,"u"))||[];t?.length>=2&&t[1]===f.default.version&&(a=!0)})}else if((0,n.existsSync)(t)){const e=(0,n.readFileSync)(t,y.ENCODING),o=u.default.load(e);Object.keys(o.object).forEach(e=>{const t=e.match(new RegExp(`^${f.default.name}@([^(),]+)`,"u"))||[];t?.length>=2&&t[1]===f.default.version&&(a=!0)})}else a=!0;a||(0,y.error)("\u5f53\u524dnode_modules\u4e0elock\u6587\u4ef6\u4e0d\u5339\u914d\uff0c\u8bf7\u68c0\u67e5\u5e76\u91cd\u65b0\u5b89\u88c5\u3002")}},R=()=>{q(),process.argv.length>2?(l.program.version(f.default.version,"-v,--version","\u8f93\u51fa\u7248\u672c\u53f7").usage("[command] [options]"),l.program.command("init").description("\u521d\u59cb\u5316\u9879\u76ee").option("--clone <template>","\u5982\u679c\u9700\u8981\uff0c\u53ef\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248\uff0c\u9ed8\u8ba4\u53d6cli\u9ed8\u8ba4\u6a21\u7248").action(({clone:e},{args:t})=>{if(N(),(0,y.ready)("yolk init \u5f00\u59cb"),e){const a=".yolk",o=(0,i.join)(y.cwd,a);(0,n.existsSync)(o)&&(0,y.rimrafSync)(o)&&(0,y.ready)(`\u7f13\u5b58\u5220\u9664 success! ${o}`),(0,y.spawnCommand)({command:"git",args:["clone","-b","master","--depth","1",e,a].concat(t)}),k(y.cwd,o)}else v(y.cwd)}),l.program.command("start").description("\u542f\u52a8\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{N(),I();const a=F(t);j()?C()?(0,y.spawnCommand)({command:"taro",args:["build","--type","tt","--watch"].concat(a)}):O()?(0,y.spawnCommand)({command:"taro",args:["build","--type","alipay","--watch"].concat(a)}):(0,y.spawnCommand)({command:"taro",args:["build","--type","weapp","--watch"].concat(a)}):e?(0,y.spawnCommand)({command:"dumi",args:["dev"].concat(a)}):$()?(0,y.spawnCommand)({command:"max",args:["dev"].concat(a)}):S()?(0,y.spawnCommand)({command:"umi",args:["dev"].concat(a)}):(0,y.breakExit)()}),l.program.command("build").description("\u7f16\u8bd1\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{N(),I();const a=F(t);if(j())C()?(0,y.spawnCommand)({command:"taro",args:["build","--type","tt"].concat(a)}):O()?(0,y.spawnCommand)({command:"taro",args:["build","--type","alipay"].concat(a)}):(0,y.spawnCommand)({command:"taro",args:["build","--type","weapp"].concat(a)});else if(e)(0,y.spawnCommand)({command:"dumi",args:["build"].concat(a)});else if($())(0,y.spawnCommand)({command:"max",args:["setup"].concat(a),complete:()=>(0,y.spawnCommand)({command:"max",args:["build"].concat(a)}),exit:!1});else if(S()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);t>=4?(0,y.spawnCommand)({command:"umi",args:["setup"].concat(a),complete:()=>(0,y.spawnCommand)({command:"umi",args:["build"].concat(a)}),exit:!1}):(0,y.spawnCommand)({command:"umi",args:["generate","tmp"].concat(a),complete:()=>(0,y.spawnCommand)({command:"umi",args:["build"].concat(a)}),exit:!1})}else(0,y.breakExit)()}),l.program.command("init-pre-commit").description("\u521d\u59cb\u5316 commit hook").action(q),l.program.command("pre-commit").description("\u6267\u884ccommit hook").action(P),D(l.program.command("miniprogram-upload").description("\u4f7f\u7528 miniprogram-ci \u4e0a\u4f20\u5c0f\u7a0b\u5e8f")).action(async e=>{if(j())if(C());else if(O());else{const{appid:a,options:{project:o,version:n,desc:r,setting:i,robot:s}}=E(e);(0,y.info)(`${a} \u4e0a\u4f20\u5f00\u59cb`),await p.upload({project:o,version:n,desc:r,setting:i,robot:s,onProgressUpdate:e=>{if((0,t.default)(e))(0,y.info)(`task: ${e}`);else{const{status:t,message:a}=e;(0,y.info)(`task(${t}): ${a}`)}}}),(0,y.ready)(`${a} \u4e0a\u4f20\u5b8c\u6210`)}else(0,y.error)("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),D(l.program.command("miniprogram-preview").description("\u4f7f\u7528 miniprogram-ci \u9884\u89c8\u5c0f\u7a0b\u5e8f")).action(async e=>{if(j())if(C());else if(O());else{const{appid:a,options:{project:o,version:n,desc:r,setting:i,robot:s,qrcodeFormat:c,qrcodeOutputDest:m,pagePath:d,searchQuery:l}}=E(e);(0,y.info)(`${a} \u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),await p.preview({project:o,version:n,desc:r,setting:i,robot:s,qrcodeFormat:c,qrcodeOutputDest:m,pagePath:d,searchQuery:l,onProgressUpdate:e=>{if((0,t.default)(e))(0,y.info)(`task: ${e}`);else{const{status:t,message:a}=e;(0,y.info)(`task(${t}): ${a}`)}}}),(0,y.ready)(`${a} \u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}else(0,y.error)("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),l.program.command("exec").description("\u6267\u884cts\u6587\u4ef6").argument("<path>","\u6267\u884c\u7684ts\u6587\u4ef6").action((e,t,{args:a})=>{const o=F(a);(0,y.spawnCommand)({command:"tsx",args:[e].concat(o)})}),(e=>{let t=l.program.command("test").description("\u6267\u884c\u6d4b\u8bd5");return e.forEach(({name:e,isBoolean:a,description:o,defaultValue:n})=>{t=t.option(a?`--${e}`:`--${e} <${e}>`,o,n)}),t})(s.defaultRunCommandOptions).action((e,{args:t})=>{const a=s.defaultRunCommandOptions.filter(({isBoolean:e})=>!!e).map(({name:e})=>e),o=F(t);let n=["run"];if(Object.keys(e).forEach(t=>{const o=e[t];n=n.concat(o?[a.indexOf(t)>=0?`--${t}`:`--${t}=${o}`]:[])}),$())(0,y.spawnCommand)({command:"max",args:["setup"].concat(o),complete:()=>(0,y.spawnCommand)({command:"yest",args:n.concat(o)}),exit:!1});else if(S()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);t>=4?(0,y.spawnCommand)({command:"umi",args:["setup"].concat(o),complete:()=>(0,y.spawnCommand)({command:"yest",args:n.concat(o)}),exit:!1}):(0,y.spawnCommand)({command:"umi",args:["generate","tmp"].concat(o),complete:()=>(0,y.spawnCommand)({command:"yest",args:n.concat(o)}),exit:!1})}else(0,y.spawnCommand)({command:"yest",args:n.concat(o)})}),l.program.parse(process.argv)):(0,y.breakExit)()};R();
2
+ "use strict";var e=require("@babel/runtime/helpers/interopRequireDefault"),t=require("node:child_process"),o=require("node:fs"),a=e(require("node:os")),n=require("node:path"),r=require("lodash-es"),i=require("@baic/yolk-test"),s=require("glob"),c=e(require("inquirer")),m=w(require("miniprogram-ci")),p=require("mkdirp"),d=require("../compiled/commander"),l=e(require("../compiled/js-yaml")),u=e(require("../compiled/mustache")),g=e(require("../package.json")),f=require("./_util");function y(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(y=function(e){return e?o: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 o=y(t);if(o&&o.has(e))return o.get(e);var a={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var r in e)if("default"!==r&&Object.prototype.hasOwnProperty.call(e,r)){var i=n?Object.getOwnPropertyDescriptor(e,r):null;i&&(i.get||i.set)?Object.defineProperty(a,r,i):a[r]=e[r]}return a.default=e,o&&o.set(e,a),a}const h="##### CREATED BY YOLK #####",b=async(e,t,a)=>{const{type:r,projectName:i,packageManager:m}=await c.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 HBuilderX uni-app template(umi framework)",value:"umi-mobile-uni-app"},{name:"mobile native template(umi framework)",value:"umi-mobile-native"},{name:"taro-miniprogram template",value:"taro-miniprogram"}]},{type:"input",name:"projectName",message:"\u9879\u76ee\u540d\u79f0",default:(0,n.basename)((0,n.basename)(process.cwd()))},{type:"list",name:"packageManager",message:"\u9009\u62e9\u5305\u7ba1\u7406\u5668(\u9ed8\u8ba4\uff1apnpm\uff0c\u63a8\u8350\uff1apnpm)",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"}]}]),d={projectName:i,packageManager:"default"===m?"pnpm":m,yolkVersion:g.default.version};if("umi-mobile-uni-app"===r)return void(0,f.warn)("\u6682\u4e0d\u652f\u6301");const l=t||(0,n.join)(__dirname,`../templates/${r}`);(0,f.ready)(`\u590d\u5236\u6a21\u7248 ${(0,n.basename)(l)}`);const y=(0,s.globSync)("**/*",{cwd:l,dot:!0,ignore:["**/node_modules/**","**/.git/**","**/.DS_Store","**/.idea/**"]});if(y.forEach(t=>{if(!l)return;const a=(0,n.join)(l,t);if(!(0,o.statSync)(a).isDirectory())if(t.endsWith(".tpl")){const r=(0,o.readFileSync)(a,f.ENCODING),i=(0,n.join)(e,t.replace(/\.tpl$/,"")),s=u.default.render(r,d);(0,p.mkdirpSync)((0,n.dirname)(i)),(0,f.ready)(`\u521b\u5efa ${(0,n.relative)(e,i)}`),(0,o.writeFileSync)(i,s,f.ENCODING)}else{(0,f.ready)(`\u521b\u5efa ${t}`);const r=(0,n.join)(e,t);(0,p.mkdirpSync)((0,n.dirname)(r)),(0,o.copyFileSync)(a,r)}}),(0,f.ready)("\u590d\u5236\u6a21\u7248 success!"),a&&(0,o.existsSync)(l)&&(0,f.rimrafSync)(l)&&(0,f.ready)(`\u7f13\u5b58\u5220\u9664 success! ${(0,n.basename)(l||"")}`),m)switch((0,f.ready)("\u521d\u59cb\u5316\u4f9d\u8d56\u5305"),m){case"default":case"pnpm":(0,f.spawnCommand)({command:"pnpm",args:["install"]});break;case"yarn":(0,f.spawnCommand)({command:"yarn",args:["install"]});break;case"npm":(0,f.spawnCommand)({command:"npm",args:["install"]});break;default:}(0,f.ready)("\u53ef\u67e5\u9605<<https://303394539.github.io/yolk-docs/>>\u4e86\u89e3\u76f8\u5173\u6587\u6863")},v=(e,t)=>b(e,t,!0),k=()=>(0,o.existsSync)((0,n.join)(f.cwd,"project.config.json")),j=()=>{let e=(0,o.existsSync)((0,n.join)(f.cwd,"node_modules/.bin/umi"));try{if(!e)try{e=(0,o.existsSync)(require.resolve("umi"))}catch(t){}}catch(t){}return e},S=()=>{let e=(0,o.existsSync)((0,n.join)(f.cwd,"node_modules/.bin/max"));try{if(!e)try{e=(0,o.existsSync)(require.resolve("@umijs/max"))}catch(t){}}catch(t){}return e},$=()=>{const e=(0,n.join)(f.cwd,"project.config.json");if((0,o.existsSync)(e)){const t=require(e);return t.appid}return""},x=()=>(0,o.existsSync)((0,n.join)(f.cwd,"project.tt.json"))&&0===$().indexOf("tt"),C=()=>0===$().indexOf("20"),O=()=>{const e=(0,f.getYolkConfig)(),t=(0,n.join)(f.cwd,".husky/pre-commit"),r=(0,n.join)(f.cwd,".git/"),i=(0,n.join)(f.cwd,".git/hooks"),s=(0,n.join)(i,"pre-commit"),c=(0,o.existsSync)(t),m=(0,o.existsSync)(r),d=(0,o.existsSync)(i),l=(0,o.existsSync)(s),u=!1!==e.initPreCommit&&!c,g=[h,"npx yolk pre-commit","RESULT=$?","[ $RESULT -ne 0 ] && exit 1","exit 0",h].join(a.default.EOL),y=e=>{let t=e||"";return t&&t.indexOf(h)>=0&&(t=`${t.substring(0,t.indexOf(h))}${t.substring(t.lastIndexOf(h)+h.length)}`.replace(/(\r|\n)+$/gu,"")),t};if(m)if(u)if(d||((0,p.mkdirpSync)(i),(0,f.ready)("create .git/hooks")),l){try{(0,o.chmodSync)(s,"777")}catch(w){(0,f.error)(`chmod ${s} failed: ${w.message}`)}const e=y((0,o.readFileSync)(s,f.ENCODING).toString());(0,o.writeFileSync)(s,(e.indexOf("#!/")<0?["#!/bin/sh"]:[]).concat([e,g]).filter(e=>!!e).join(a.default.EOL),f.ENCODING)}else(0,o.writeFileSync)(s,["#!/bin/sh",g].join(a.default.EOL),f.ENCODING),(0,f.ready)("create pre-commit");else if(l){const e=y((0,o.readFileSync)(s,f.ENCODING).toString());(0,o.writeFileSync)(s,e,f.ENCODING)}},q=()=>{const{ignorePreCommitRunLint:e,ignorePreCommitRunTest:t}=(0,f.getYolkConfig)();if(e?(0,f.warn)("\u5df2\u8bed\u6cd5\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002"):((0,f.warn)("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684\u8bed\u6cd5\u68c0\u67e5\u3002"),(0,f.spawnSyncCommand)({command:"lint-staged",args:["-c",require.resolve("./lintstagedrc"),"--allow-empty"]})),t)(0,f.warn)("\u5df2\u5ffd\u7565test\u6267\u884c\uff0c\u8bf7\u81ea\u884c\u6267\u884c\u3002");else{(0,f.warn)("\u7edf\u4e00\u4ee3\u7801\u89c4\u8303\uff0c\u8fdb\u884c\u4e25\u683c\u7684test\u6267\u884c\u3002");const e=(0,f.getPackageJSON)();e?.scripts&&e?.scripts?.test?.length&&(0,f.spawnSyncCommand)({command:"npm",args:["test"]})}},P=({mAppid:e,mProject:a,mPrivateKeyPath:r,mVersion:i,mDesc:s,mRobot:c,mQrcodeFormat:p,mQrcodeOutputDest:d,mPagePath:l,mSearchQuery:u})=>{let g="";try{g=(0,o.existsSync)((0,n.join)(f.cwd,".git"))?(0,t.execSync)("git log -1 --pretty=format:%H").toString():""}catch(v){}const y=(0,f.getProjectConfigJSON)(),w=e||y.appid,h=a||(0,n.join)(f.cwd,"dist"),b=r||(0,n.join)(f.cwd,`private.${w}.key`);if((0,o.existsSync)(h)){if((0,o.existsSync)(b)){const e=(0,f.getPackageJSON)(),t=i||e.version||y.version||"1.0.0",o=s||e.description||y.description,a=`${g?` commit: ${g};`:""}${o?` description: ${o};`:""}`;g&&(0,f.info)(`commit: ${g}`),(0,f.info)(`dist: ${h}`),(0,f.info)(`key: ${b}`),(0,f.info)(`appid: ${w}`),(0,f.info)(`version: ${t}`),(0,f.info)(`desc: ${a}`);const n=new m.Project({appid:w,type:"miniProgram",projectPath:h,privateKeyPath:b,ignores:["node_modules/**/*","**/*.txt","**/*.key","**/*.less","**/*.sass","**/*.scss","**/*.css","**/*.jsx","**/*.ts","**/*.tsx","**/*.md"]});return{appid:w,options:{project:n,version:t,desc:a,setting:{...y.setting,es6:!1,es7:!1,minifyJS:!1,minifyWXML:!1,minifyWXSS:!1,minify:!1},robot:c,qrcodeFormat:p,qrcodeOutputDest:d,pagePath:l,searchQuery:u}}}throw Error(`\u6ca1\u6709\u627e\u5230\u4e0a\u4f20\u5bc6\u94a5(${b})`)}throw Error(`\u6ca1\u6709\u627e\u5230dist\u76ee\u5f55(${h})`)},E=()=>{let e="";try{e=(0,t.execSync)(`${(0,f.transformCommand)("npm")} view ${g.default.name} version`,{timeout:3e3}).toString().replace(/\n/g,"")}catch(o){}(0,f.info)(`yolk version: ${g.default.version}${e&&e!==g.default.version?`(latest\uff1a${e})`:""}`),(0,f.info)(`node version: ${process.version}`),(0,f.info)(`platform: ${a.default.platform()}`),(0,f.info)(`memory: ${(0,r.floor)(a.default.freemem()/1024/1024)} MB(${(0,r.floor)(a.default.totalmem()/1024/1024)} MB)`)},N=e=>e.option("--appid, --mAppid <appid>","\u5c0f\u7a0b\u5e8fappid").option("--project, --mProject <project>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u5de5\u7a0b\u76ee\u5f55").option("--privateKeyPath, --mPrivateKeyPath <privateKeyPath>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20key\u6587\u4ef6\uff0c\u9ed8\u8ba4\uff1a{\u5f53\u524d\u76ee\u5f55}/private.{appid}.key").option("--version, --mVersion <version>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u7248\u672c\u53f7").option("--desc, --mDesc <desc>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20\u63cf\u8ff0").option("--robot, --mRobot <robot>","\u5c0f\u7a0b\u5e8f\u4e0a\u4f20ci\u673a\u5668\u4eba1~30").option("--qrcodeFormat, --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("--qrcodeOutputDest, --mQrcodeOutputDest <qrcodeOutputDest>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u4e8c\u7ef4\u7801\u6587\u4ef6\u4fdd\u5b58\u8def\u5f84").option("--pagePath, --mPagePath <pagePath>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84").option("--searchQuery, --mSearchQuery <searchQuery>","\u5c0f\u7a0b\u5e8f\u9884\u89c8\u9884\u89c8\u9875\u9762\u8def\u5f84\u542f\u52a8\u53c2\u6570"),D=/(\w+)=('(.*)'|"(.*)"|(.*))/giu,_=e=>{process.env.DID_YOU_KNOW="none",process.env.VITE_CJS_IGNORE_WARNING="true";const t=[];return e?.forEach(e=>{if(D.test(e)){const[t,o]=e.split("=");process.env[t]=o,(0,f.info)(`\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a${t}=${o}`)}else t.push(e)}),t},F=()=>{const{ignoreCheckNodeModulesMatchLockFile:e}=(0,f.getYolkConfig)();if(e)(0,f.warn)("\u5ffd\u7565node_modules\u4e0elock\u6587\u4ef6\u5339\u914d\u68c0\u67e5\uff0c\u8bf7\u81ea\u884c\u68c0\u67e5\u3002");else{const e=(0,n.join)(f.cwd,"pnpm-lock.yaml"),t=(0,n.join)(f.cwd,"yarn.lock");let a=!1;if((0,o.existsSync)(e)){const t=(0,o.readFileSync)(e,f.ENCODING),n=l.default.load(t);Object.keys(n.packages).forEach(e=>{const t=e.match(new RegExp(`^/${g.default.name}@([^()]+)`,"u"))||[];t?.length>=2&&t[1]===g.default.version&&(a=!0)})}else if((0,o.existsSync)(t)){const e=(0,o.readFileSync)(t,f.ENCODING),n=l.default.load(e);Object.keys(n.object).forEach(e=>{const t=e.match(new RegExp(`^${g.default.name}@([^(),]+)`,"u"))||[];t?.length>=2&&t[1]===g.default.version&&(a=!0)})}else a=!0;a||(0,f.error)("\u5f53\u524dnode_modules\u4e0elock\u6587\u4ef6\u4e0d\u5339\u914d\uff0c\u8bf7\u68c0\u67e5\u5e76\u91cd\u65b0\u5b89\u88c5\u3002")}},I=()=>{O(),process.argv.length>2?(d.program.version(g.default.version,"-v,--version","\u8f93\u51fa\u7248\u672c\u53f7").usage("[command] [options]"),d.program.command("init").description("\u521d\u59cb\u5316\u9879\u76ee").option("--clone <template>","\u5982\u679c\u9700\u8981\uff0c\u53ef\u901a\u8fc7git clone\u62c9\u53d6\u6a21\u7248\uff0c\u9ed8\u8ba4\u53d6cli\u9ed8\u8ba4\u6a21\u7248").action(({clone:e},{args:t})=>{if(E(),(0,f.ready)("yolk init \u5f00\u59cb"),e){const a=".yolk",r=(0,n.join)(f.cwd,a);(0,o.existsSync)(r)&&(0,f.rimrafSync)(r)&&(0,f.ready)(`\u7f13\u5b58\u5220\u9664 success! ${r}`),(0,f.spawnCommand)({command:"git",args:["clone","-b","master","--depth","1",e,a].concat(t)}),v(f.cwd,r)}else b(f.cwd)}),d.program.command("start").description("\u542f\u52a8\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{E(),F();const o=_(t);k()?x()?(0,f.spawnCommand)({command:"taro",args:["build","--type","tt","--watch"].concat(o)}):C()?(0,f.spawnCommand)({command:"taro",args:["build","--type","alipay","--watch"].concat(o)}):(0,f.spawnCommand)({command:"taro",args:["build","--type","weapp","--watch"].concat(o)}):e?(0,f.spawnCommand)({command:"dumi",args:["dev"].concat(o)}):S()?(0,f.spawnCommand)({command:"max",args:["dev"].concat(o)}):j()?(0,f.spawnCommand)({command:"umi",args:["dev"].concat(o)}):(0,f.breakExit)()}),d.program.command("build").description("\u7f16\u8bd1\u9879\u76ee").option("--docs","\u6587\u6863\u6a21\u5f0f").action(({docs:e},{args:t})=>{E(),F();const o=_(t);if(k())x()?(0,f.spawnCommand)({command:"taro",args:["build","--type","tt"].concat(o)}):C()?(0,f.spawnCommand)({command:"taro",args:["build","--type","alipay"].concat(o)}):(0,f.spawnCommand)({command:"taro",args:["build","--type","weapp"].concat(o)});else if(e)(0,f.spawnCommand)({command:"dumi",args:["build"].concat(o)});else if(S())(0,f.spawnCommand)({command:"max",args:["setup"].concat(o),complete:()=>(0,f.spawnCommand)({command:"max",args:["build"].concat(o)}),exit:!1});else if(j()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);t>=4?(0,f.spawnCommand)({command:"umi",args:["setup"].concat(o),complete:()=>(0,f.spawnCommand)({command:"umi",args:["build"].concat(o)}),exit:!1}):(0,f.spawnCommand)({command:"umi",args:["generate","tmp"].concat(o),complete:()=>(0,f.spawnCommand)({command:"umi",args:["build"].concat(o)}),exit:!1})}else(0,f.breakExit)()}),d.program.command("init-pre-commit").description("\u521d\u59cb\u5316 commit hook").action(O),d.program.command("pre-commit").description("\u6267\u884ccommit hook").action(q),N(d.program.command("miniprogram-upload").description("\u4f7f\u7528 miniprogram-ci \u4e0a\u4f20\u5c0f\u7a0b\u5e8f")).action(async e=>{if(k())if(x());else if(C());else{const{appid:t,options:{project:o,version:a,desc:n,setting:i,robot:s}}=P(e);(0,f.info)(`${t} \u4e0a\u4f20\u5f00\u59cb`),await m.upload({project:o,version:a,desc:n,setting:i,robot:s,onProgressUpdate:e=>{if((0,r.isString)(e))(0,f.info)(`task: ${e}`);else{const{status:t,message:o}=e;(0,f.info)(`task(${t}): ${o}`)}}}),(0,f.ready)(`${t} \u4e0a\u4f20\u5b8c\u6210`)}else(0,f.error)("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),N(d.program.command("miniprogram-preview").description("\u4f7f\u7528 miniprogram-ci \u9884\u89c8\u5c0f\u7a0b\u5e8f")).action(async e=>{if(k())if(x());else if(C());else{const{appid:t,options:{project:o,version:a,desc:n,setting:i,robot:s,qrcodeFormat:c,qrcodeOutputDest:p,pagePath:d,searchQuery:l}}=P(e);(0,f.info)(`${t} \u4e0a\u4f20\u9884\u89c8\u5f00\u59cb`),await m.preview({project:o,version:a,desc:n,setting:i,robot:s,qrcodeFormat:c,qrcodeOutputDest:p,pagePath:d,searchQuery:l,onProgressUpdate:e=>{if((0,r.isString)(e))(0,f.info)(`task: ${e}`);else{const{status:t,message:o}=e;(0,f.info)(`task(${t}): ${o}`)}}}),(0,f.ready)(`${t} \u4e0a\u4f20\u9884\u89c8\u5b8c\u6210`)}else(0,f.error)("\u975e\u5c0f\u7a0b\u5e8f\u9879\u76ee\u76ee\u5f55")}),d.program.command("exec").description("\u6267\u884cts\u6587\u4ef6").argument("<path>","\u6267\u884c\u7684ts\u6587\u4ef6").action((e,t,{args:o})=>{const a=_(o);(0,f.spawnCommand)({command:"tsx",args:[e].concat(a)})}),(e=>{let t=d.program.command("test").description("\u6267\u884c\u6d4b\u8bd5");return e.forEach(({name:e,isBoolean:o,description:a,defaultValue:n})=>{t=t.option(o?`--${e}`:`--${e} <${e}>`,a,n)}),t})(i.defaultRunCommandOptions).action((e,{args:t})=>{const o=i.defaultRunCommandOptions.filter(({isBoolean:e})=>!!e).map(({name:e})=>e),a=_(t);let n=["run"];if(Object.keys(e).forEach(t=>{const a=e[t];n=n.concat(a?[o.indexOf(t)>=0?`--${t}`:`--${t}=${a}`]:[])}),S())(0,f.spawnCommand)({command:"max",args:["setup"].concat(a),complete:()=>(0,f.spawnCommand)({command:"yest",args:n.concat(a)}),exit:!1});else if(j()){const e=require("umi/package.json"),t=Number((e.version||"").split(".")[0]||0);t>=4?(0,f.spawnCommand)({command:"umi",args:["setup"].concat(a),complete:()=>(0,f.spawnCommand)({command:"yest",args:n.concat(a)}),exit:!1}):(0,f.spawnCommand)({command:"umi",args:["generate","tmp"].concat(a),complete:()=>(0,f.spawnCommand)({command:"yest",args:n.concat(a)}),exit:!1})}else(0,f.spawnCommand)({command:"yest",args:n.concat(a)})}),d.program.parse(process.argv)):(0,f.breakExit)()};I();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baic/yolk-cli",
3
- "version": "2.1.0-alpha.271",
3
+ "version": "2.1.0-alpha.273",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/303394539/yolk.git"
@@ -25,22 +25,21 @@
25
25
  "prebundle": "father prebundle"
26
26
  },
27
27
  "dependencies": {
28
- "@baic/biome-config-yolk": "2.1.0-alpha.271",
29
- "@baic/eslint-config-yolk": "2.1.0-alpha.271",
30
- "@baic/prettier-config-yolk": "2.1.0-alpha.271",
31
- "@baic/stylelint-config-yolk": "2.1.0-alpha.271",
32
- "@baic/yolk-test": "2.1.0-alpha.271",
28
+ "@baic/biome-config-yolk": "2.1.0-alpha.273",
29
+ "@baic/eslint-config-yolk": "2.1.0-alpha.273",
30
+ "@baic/prettier-config-yolk": "2.1.0-alpha.273",
31
+ "@baic/stylelint-config-yolk": "2.1.0-alpha.273",
32
+ "@baic/yolk-test": "2.1.0-alpha.273",
33
33
  "@democrance/imagemin-lint-staged": "5.0.x",
34
- "@types/lodash": "4.x",
35
34
  "chalk": "4.x",
36
35
  "eslint": "8.x",
37
36
  "exit-x": "0.2.x",
38
37
  "glob": "10.4.x",
39
38
  "husky": "9.1.x",
40
39
  "inquirer": "8.x",
41
- "lint-staged": "16.1.x",
42
- "lodash": "4.x",
43
- "miniprogram-ci": "2.1.14",
40
+ "lint-staged": "16.2.x",
41
+ "lodash-es": "4.x",
42
+ "miniprogram-ci": "2.1.26",
44
43
  "mkdirp": "3.0.x",
45
44
  "postcss": "8.5.x",
46
45
  "postcss-less": "6.0.x",
@@ -54,11 +53,12 @@
54
53
  "@types/inquirer": "8.x",
55
54
  "@types/js-yaml": "4.x",
56
55
  "@types/lint-staged": "14.x",
56
+ "@types/lodash-es": "4.x",
57
57
  "@types/mustache": "4.x",
58
58
  "commander": "12.1.x",
59
59
  "js-yaml": "4.1.x",
60
60
  "mustache": "4.2.x",
61
- "type-fest": "4.41.x"
61
+ "type-fest": "5.1.x"
62
62
  },
63
63
  "engines": {
64
64
  "node": ">=18"
@@ -66,5 +66,5 @@
66
66
  "publishConfig": {
67
67
  "access": "public"
68
68
  },
69
- "gitHead": "62d9f80c0f7cbd5b52bf224d297b0df3aad329c0"
69
+ "gitHead": "927862920403d67edfe18499aacd0dc2154923eb"
70
70
  }
@@ -1,4 +1,4 @@
1
- import { isFunction, isObject } from 'lodash';
1
+ import { isFunction, isObject } from 'lodash-es';
2
2
 
3
3
  import type { FunctionComponent } from 'react';
4
4
  import { createElement } from 'react';
@@ -1,7 +1,7 @@
1
1
  import type { FunctionComponent } from 'react';
2
2
  import { createElement } from 'react';
3
3
 
4
- import { isFunction, isObject } from 'lodash';
4
+ import { isFunction, isObject } from 'lodash-es';
5
5
 
6
6
  import { Tabs, Collapse } from 'antd-mobile';
7
7
 
@@ -1,4 +1,4 @@
1
- import { isFunction, unionBy } from 'lodash';
1
+ import { isFunction, unionBy } from 'lodash-es';
2
2
 
3
3
  import { Toast } from 'antd-mobile';
4
4
 
@@ -1,4 +1,4 @@
1
- import { isFunction } from 'lodash';
1
+ import { isFunction } from 'lodash-es';
2
2
 
3
3
  type Result<T = object> = {
4
4
  code: number;
@@ -1,9 +1,7 @@
1
- import { useCallback, useState } from 'react';
1
+ import { useCallback, useEffect, useState } from 'react';
2
2
 
3
3
  import { Toast } from 'antd-mobile';
4
4
 
5
- import { useMount } from 'ahooks';
6
-
7
5
  import type { BondedDevice } from '@/common/Xprinter';
8
6
 
9
7
  import Xprinter from '@/common/Xprinter';
@@ -39,9 +37,12 @@ export default () => {
39
37
  },
40
38
  [],
41
39
  );
42
- useMount(async () => {
40
+ const initBondList = useCallback(async () => {
43
41
  setBondList((await Xprinter.getBondedDevices()) || []);
44
- });
42
+ }, []);
43
+ useEffect(() => {
44
+ initBondList();
45
+ }, []);
45
46
  return (
46
47
  <>
47
48
  <div className={style.title}>蓝牙设备</div>
@@ -1,7 +1,7 @@
1
1
  import type { FunctionComponent } from 'react';
2
2
  import { createElement } from 'react';
3
3
 
4
- import { isFunction, isObject } from 'lodash';
4
+ import { isFunction, isObject } from 'lodash-es';
5
5
 
6
6
  import { Tabs, Collapse } from 'antd-mobile';
7
7
 
@@ -1,4 +1,4 @@
1
- import { isFunction, isObject } from 'lodash';
1
+ import { isFunction, isObject } from 'lodash-es';
2
2
 
3
3
  import type { FunctionComponent } from 'react';
4
4
  import { createElement } from 'react';
@@ -1,4 +1,4 @@
1
- import { isFunction, isObject } from 'lodash';
1
+ import { isFunction, isObject } from 'lodash-es';
2
2
 
3
3
  import type { FunctionComponent } from 'react';
4
4
  import { createElement } from 'react';
@@ -1,4 +1,4 @@
1
- import { isFunction, isNumber } from 'lodash';
1
+ import { isFunction, isNumber } from 'lodash-es';
2
2
  import classnames from 'classnames';
3
3
 
4
4
  import type { ReactNode, RefObject } from 'react';
@@ -1,7 +1,5 @@
1
1
  import type { PropsWithChildren } from 'react';
2
- import { createContext, useCallback, useEffect,useRef, useState } from 'react';
3
-
4
- import { useMount, useUnmount } from 'ahooks';
2
+ import { createContext, useCallback, useEffect, useRef, useState } from 'react';
5
3
 
6
4
  import useSize from '@/hooks/use-size';
7
5
 
@@ -54,12 +52,14 @@ const Component = ({ children }: Props) => {
54
52
  },
55
53
  });
56
54
 
57
- useMount(initDataHandler);
58
- useUnmount(() => {
59
- if (timeoutID.current) {
60
- clearTimeout(timeoutID.current);
61
- }
62
- });
55
+ useEffect(() => {
56
+ initDataHandler();
57
+ return () => {
58
+ if (timeoutID.current) {
59
+ clearTimeout(timeoutID.current);
60
+ }
61
+ };
62
+ }, []);
63
63
 
64
64
  useEffect(() => {
65
65
  setLayout({