@werk/cli
Version:
werk-cli 脚手架
2 lines (1 loc) • 2.48 kB
JavaScript
import{__awaiter as e}from"../_virtual/_tslib.js";import o from"node:path";import t from"../_virtual/index.js";import{clone as i}from"../utils/clone.js";import{version as n,name as s}from"../package.json.js";import"../node_modules/.pnpm/axios@1.9.0/node_modules/axios/index.js";import{l as r}from"../_virtual/lodash.js";import d from"../node_modules/.pnpm/chalk@5.4.1/node_modules/chalk/source/index.js";import l from"../node_modules/.pnpm/@inquirer_input@4.1.10_@types_node@22.15.17/node_modules/@inquirer/input/dist/esm/index.js";import m from"../node_modules/.pnpm/@inquirer_select@4.2.1_@types_node@22.15.17/node_modules/@inquirer/select/dist/esm/index.js";import p from"../node_modules/.pnpm/axios@1.9.0/node_modules/axios/lib/axios.js";const c=new Map([["vite-vue3-typescript-template",{name:"vite-vue3-typescript-template",downloadUrl:"git@github.com:percykuang/css-scope-loader.git",description:"vite-vue3-typescript-template",branch:"main"}],["vite-vue3-typescript-template-dev10",{name:"vite-vue3-typescript-template",downloadUrl:"git@gitee.com:sohucw/admin-pro.git",description:"vite-vue3-typescript-template",branch:"dev10"}]]);function a(o){return e(this,void 0,void 0,(function*(){return console.warn(`目标目录 ${o} 已存在`),yield m({message:"是否覆盖?",choices:[{name:"是",value:!0},{name:"否",value:!1}]})}))}function u(o){return e(this,void 0,void 0,(function*(){const e=`https://registry.npmjs.org/${o}`;let t={};try{t=yield p.get(e)}catch(e){console.log("error",e)}return t}))}function v(o){return e(this,void 0,void 0,(function*(){const{data:e}=yield u(o);return e["dist-tags"].latest}))}function f(o,t){return e(this,void 0,void 0,(function*(){const e=yield v(o),i=r.gt(e,t);return i&&(console.warn(d.yellow(`当前版本 ${t} 不是最新版本 ${e},建议更新`)),console.log(d.yellow(`请执行 npm install ${o}@latest 进行更新, 或执行 werk-cli update 进行更新`))),i}))}function y(r){return e(this,void 0,void 0,(function*(){const e=Array.from(c).map((e=>{const[o,t]=e;return{name:o,value:o,description:t.description}}));r||(r=yield l({message:"请输入项目名称"}));const d=o.resolve(process.cwd(),r);if(t.existsSync(d)){if(!(yield a(d)))return;yield t.remove(d)}yield f(s,n);const p=yield m({message:"请选择模板",choices:e}),u=c.get(p);console.log("info",u),u&&i(u.downloadUrl,r,["-b",u.branch])}))}export{f as checkVersion,y as create,u as getNpmInfo,v as getNpmLatestVersion,a as isOverwrite,c as templates};