@huberyyang/create-todo-vue 1.1.0 → 1.2.0
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/README.md +27 -4
- package/bin/index.js +3 -1
- package/dist/index.js +9 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<h1 align="center">🚀 create-todo-vue</h1>
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
|
-
<a href="https://
|
|
4
|
+
<a href="https://www.npmjs.com/package/@huberyyang/create-todo-vue"><img src="https://img.shields.io/npm/v/@huberyyang/create-todo-vue?style=flat-square&label=%20&color=%23000" alt="npm version"></a>
|
|
5
|
+
<a href="https://github.com/Hub-yang/create-todo-vue/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/Hub-yang/create-todo-vue/ci.yml?branch=main&style=flat-square&label=CI" alt="CI status"/></a>
|
|
5
6
|
<a href="https://github.com/Hub-yang/create-todo-vue"><img src="https://img.shields.io/static/v1?label=%F0%9F%8C%9F&message=If%20Useful&style=flat-square&color=BC4E99" alt="star badge"/></a>
|
|
6
|
-
<a href="https://opensource.org/license/MIT"><img src="https://img.shields.io/npm/l/
|
|
7
|
+
<a href="https://opensource.org/license/MIT"><img src="https://img.shields.io/npm/l/@huberyyang/create-todo-vue?style=flat-square" alt="license"/></a>
|
|
7
8
|
</div>
|
|
8
9
|
|
|
9
10
|
### 💡 说明 (Features)
|
|
@@ -31,18 +32,40 @@ deno run -A npm:@huberyyang/create-todo-vue
|
|
|
31
32
|
|
|
32
33
|
#### ⚡️ 快速创建
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
指定好参数即可跳过全部交互:
|
|
35
36
|
|
|
36
37
|
```sh
|
|
38
|
+
# 创建并立即安装依赖
|
|
37
39
|
npm create @huberyyang/todo-vue vue-project --overwrite -t vue-ts -i
|
|
40
|
+
|
|
41
|
+
# 只创建,不装依赖(适合 CI 或脚本调用)
|
|
42
|
+
npm create @huberyyang/todo-vue vue-project --overwrite -t vue-ts --no-immediate
|
|
38
43
|
```
|
|
39
44
|
|
|
40
45
|
#### 🔵 参数说明
|
|
41
46
|
|
|
42
47
|
- `-h, --help` 查看帮助
|
|
48
|
+
- `-v, --version` 查看版本号
|
|
43
49
|
- `-t, --template` 指定模板
|
|
44
50
|
- `-i, --immediate` 创建后立即安装依赖
|
|
45
|
-
- `--
|
|
51
|
+
- `--no-immediate` 创建后不安装依赖,只打印后续步骤(不加这两个 flag 时会询问)
|
|
52
|
+
- `--overwrite` 目标目录不为空时直接覆盖,不再询问
|
|
53
|
+
|
|
54
|
+
传入未声明的参数会直接报错退出,并列出拼错的那个。
|
|
55
|
+
|
|
56
|
+
#### 🟡 退出码
|
|
57
|
+
|
|
58
|
+
脚本化调用时可据此判断结果:
|
|
59
|
+
|
|
60
|
+
| 退出码 | 含义 |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| `0` | 创建成功;`-h` / `-v` 同样返回 0 |
|
|
63
|
+
| `1` | 操作被取消、参数有误,或创建过程中出错 |
|
|
64
|
+
|
|
65
|
+
两点值得单独说明,它们在 `v1.2.0` 之前的行为不同:
|
|
66
|
+
|
|
67
|
+
- **取消操作返回 1。** 既包括交互式按 <kbd>Ctrl</kbd>+<kbd>C</kbd>,也包括在非交互环境(CI、脚本)下走到了需要输入的提示。后者以前返回 `0`,调用方会把「什么都没创建」误判成创建成功。
|
|
68
|
+
- **拼错的参数会被指出来。** 以前拼错的 flag 会被静默忽略,而且它还会把紧跟其后的目录名当成自己的值吃掉——`--overwirte my-app` 连项目名都会丢,CLI 转而追问项目名称,用户看不出哪里写错了。
|
|
46
69
|
|
|
47
70
|
#### 🟢 当前可用模板
|
|
48
71
|
|
package/bin/index.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as e}from"node:module";import t from"node:fs";import n from"node:path";import r,{stdin as i,stdout as a}from"node:process";import{fileURLToPath as o}from"node:url";import{styleText as s}from"node:util";import*as c from"node:readline";import l from"node:readline";import{ReadStream as u}from"node:tty";var d=Object.create,f=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,h=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty,_=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=m(t),a=0,o=i.length,s;a<o;a++)s=i[a],!g.call(e,s)&&s!==n&&f(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=p(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:d(h(e)),v(t||!e||!e.__esModule||!g.call(e,`default`)?f(n,`default`,{value:e,enumerable:!0}):n,e)),b=e(import.meta.url);const x=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),S=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ee=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,te=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,C=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,w=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,
|
|
1
|
+
import{createRequire as e}from"node:module";import t from"node:fs";import n from"node:path";import r,{stdin as i,stdout as a}from"node:process";import{fileURLToPath as o}from"node:url";import{styleText as s}from"node:util";import*as c from"node:readline";import l from"node:readline";import{ReadStream as u}from"node:tty";var d=Object.create,f=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,h=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty,_=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=m(t),a=0,o=i.length,s;a<o;a++)s=i[a],!g.call(e,s)&&s!==n&&f(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=p(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:d(h(e)),v(t||!e||!e.__esModule||!g.call(e,`default`)?f(n,`default`,{value:e,enumerable:!0}):n,e)),b=e(import.meta.url);const x=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return t=>{let n=0;for(e.lastIndex=0;e.test(t);)n+=1;return t.length-n}})(),S=e=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,ee=e=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141,te=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,C=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,w=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/uy,T=/\t{1,1000}/y,ne=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/uy,re=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,E=/\p{M}+/gu,ie={limit:1/0,ellipsis:``},ae=(e,t={},n={})=>{let r=t.limit??1/0,i=t.ellipsis??``,a=t?.ellipsisWidth??(i?ae(i,ie,n).width:0),o=n.controlWidth??0,s=n.tabWidth??8,c=n.emojiWidth??2,l=n.regularWidth??1,u=n.wideWidth??2,d=[[re,l],[te,0],[C,o],[T,s],[ne,c],[w,u]],f=0,p=0,m=e.length,h=0,g=!1,_=m,v=Math.max(0,r-a),y=0,b=0,D=0,O=0;outer:for(;;){if(b>y||p>=m&&p>f){let t=e.slice(y,b)||e.slice(f,p);h=0;for(let e of t.replaceAll(E,``)){let t=e.codePointAt(0)||0;if(O=S(t)?2:ee(t)?u:l,D+O>v&&(_=Math.min(_,Math.max(y,f)+h)),D+O>r){g=!0;break outer}h+=e.length,D+=O}y=b=0}if(p>=m)break outer;for(let t=0,n=d.length;t<n;t++){let[n,i]=d[t];if(n.lastIndex=p,n.test(e)){if(h=n===w?x(e.slice(p,n.lastIndex)):n===ne?1:n.lastIndex-p,O=h*i,D+O>v&&(_=Math.min(_,p+Math.floor((v-D)/i))),D+O>r){g=!0;break outer}D+=O,y=f,b=p,p=f=n.lastIndex;continue outer}}p+=1}return{width:g?v:D,index:g?_:m,truncated:g,ellipsed:g&&r>=a}},D={limit:1/0,ellipsis:``,ellipsisWidth:0},O=(e,t={})=>ae(e,D,t).width,k=`]8;;`,oe=RegExp(`(?:\\[(?<code>\\d+)m|\\${k}(?<uri>.*))`,`y`),se=e=>{if(e>=30&&e<=37||e>=90&&e<=97)return 39;if(e>=40&&e<=47||e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0},ce=e=>`[${e}m`,le=e=>`${k}${e}`,A=(e,t,n)=>{let r=t[Symbol.iterator](),i=!1,a=!1,o=e.at(-1),s=o===void 0?0:O(o),c=r.next(),l=r.next(),u=0;for(;!c.done;){let o=c.value,d=O(o);s+d<=n?e[e.length-1]+=o:(e.push(o),s=0),(o===`\x1B`||o===``)&&(i=!0,a=t.startsWith(k,u+1)),i?a?o===`\x07`&&(i=!1,a=!1):o===`m`&&(i=!1):(s+=d,s===n&&!l.done&&(e.push(``),s=0)),c=l,l=r.next(),u+=o.length}o=e.at(-1),!s&&o!==void 0&&o.length&&e.length>1&&(e[e.length-2]+=e.pop())},ue=e=>{let t=e.split(` `),n=t.length;for(;n&&!O(t[n-1]);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},de=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=e.split(` `),s=[``],c=0;for(let e=0;e<o.length;e++){let r=o[e];if(n.trim!==!1){let e=s.at(-1)??``,t=e.trimStart();e.length!==t.length&&(s[s.length-1]=t,c=O(t))}e!==0&&(c>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),c=0),(c||n.trim===!1)&&(s[s.length-1]+=` `,c++));let i=O(r);if(n.hard&&i>t){let e=t-c,n=1+Math.floor((i-e-1)/t);Math.floor((i-1)/t)<n&&s.push(``),A(s,r,t),c=O(s.at(-1)??``);continue}if(c+i>t&&c&&i){if(n.wordWrap===!1&&c<t){A(s,r,t),c=O(s.at(-1)??``);continue}s.push(``),c=0}if(c+i>t&&n.wordWrap===!1){A(s,r,t),c=O(s.at(-1)??``);continue}s[s.length-1]+=r,c+=i}n.trim!==!1&&(s=s.map(e=>ue(e)));let l=s.join(`
|
|
2
2
|
`),u=!1;for(let e=0;e<l.length;e++){let t=l[e];if(r+=t,u)u=!1;else if(u=t>=`\ud800`&&t<=`\udbff`,u)continue;if(t===`\x1B`||t===``){oe.lastIndex=e+1;let t=oe.exec(l)?.groups;if(t?.code!==void 0){let e=Number.parseFloat(t.code);i=e===39?void 0:e}else t?.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}if(l[e+1]===`
|
|
3
3
|
`){a&&(r+=le(``));let e=i?se(i):void 0;i&&e&&(r+=ce(e))}else t===`
|
|
4
4
|
`&&(i&&se(i)&&(r+=ce(i)),a&&(r+=le(a)))}return r},fe=/\r?\n/;function j(e,t,n){return String(e).normalize().split(fe).map(e=>de(e,t,n)).join(`
|
|
@@ -30,13 +30,13 @@ ${s(`gray`,G)} `:``;n.write(`${r}${e}
|
|
|
30
30
|
|
|
31
31
|
`)},Be=e=>s(`magenta`,e),Ve=({indicator:e=`dots`,onCancel:t,output:n=process.stdout,cancelMessage:r,errorMessage:i,frames:a=V?[`◒`,`◐`,`◓`,`◑`]:[`•`,`o`,`O`,`0`],delay:o=V?80:120,signal:c,...l}={})=>{let u=Ce(),d,f,p=!1,m=!1,h=``,g,_=performance.now(),v=R(n),y=l?.styleFrame??Be,b=e=>{let n=e>1?i??P.messages.error:r??P.messages.cancel;m=e===1,p&&(E(n,e),m&&typeof t==`function`&&t())},x=()=>b(2),S=()=>b(1),ee=()=>{process.on(`uncaughtExceptionMonitor`,x),process.on(`unhandledRejection`,x),process.on(`SIGINT`,S),process.on(`SIGTERM`,S),process.on(`exit`,b),c&&c.addEventListener(`abort`,S)},te=()=>{process.removeListener(`uncaughtExceptionMonitor`,x),process.removeListener(`unhandledRejection`,x),process.removeListener(`SIGINT`,S),process.removeListener(`SIGTERM`,S),process.removeListener(`exit`,b),c&&c.removeEventListener(`abort`,S)},C=()=>{if(g===void 0)return;u&&n.write(`
|
|
32
32
|
`);let e=j(g,v,{hard:!0,trim:!1}).split(`
|
|
33
|
-
`);e.length>1&&n.write(M.cursor.up(e.length-1)),n.write(M.cursor.to(0)),n.write(M.erase.down())},w=e=>e.replace(/\.+$/,``),
|
|
34
|
-
`);let r=0,i=0;ee(),f=setInterval(()=>{if(u&&h===g)return;C(),g=h;let t=y(a[r]),o;if(u)o=`${t} ${h}...`;else if(e===`timer`)o=`${t} ${h} ${
|
|
33
|
+
`);e.length>1&&n.write(M.cursor.up(e.length-1)),n.write(M.cursor.to(0)),n.write(M.erase.down())},w=e=>e.replace(/\.+$/,``),T=e=>{let t=(performance.now()-e)/1e3,n=Math.floor(t/60),r=Math.floor(t%60);return n>0?`[${n}m ${r}s]`:`[${r}s]`},ne=l.withGuide??P.withGuide,re=(t=``)=>{p=!0,d=ge({output:n}),h=w(t),_=performance.now(),ne&&n.write(`${s(`gray`,W)}
|
|
34
|
+
`);let r=0,i=0;ee(),f=setInterval(()=>{if(u&&h===g)return;C(),g=h;let t=y(a[r]),o;if(u)o=`${t} ${h}...`;else if(e===`timer`)o=`${t} ${h} ${T(_)}`;else{let e=`.`.repeat(Math.floor(i)).slice(0,3);o=`${t} ${h}${e}`}let s=j(o,v,{hard:!0,trim:!1});n.write(s),r=r+1<a.length?r+1:0,i=i<4?i+.125:0},o)},E=(t=``,r=0,i=!1)=>{if(!p)return;p=!1,clearInterval(f),C();let a=r===0?s(`green`,U):r===1?s(`red`,Te):s(`red`,Ee);h=t??h,i||(e===`timer`?n.write(`${a} ${h} ${T(_)}
|
|
35
35
|
`):n.write(`${a} ${h}
|
|
36
36
|
`)),te(),d()};return{start:re,stop:(e=``)=>E(e,0),message:(e=``)=>{h=w(e??h)},cancel:(e=``)=>E(e,1),error:(e=``)=>E(e,2),clear:()=>E(``,0,!0),get isCancelled(){return m}}},He=[`${s(`dim`,`↑/↓`)} to navigate`,`${s(`dim`,`Enter:`)} confirm`],X=(e,t)=>e.includes(`
|
|
37
37
|
`)?e.split(`
|
|
38
38
|
`).map(e=>t(e)).join(`
|
|
39
|
-
`):t(e),
|
|
39
|
+
`):t(e),Z=e=>{let t=(e,t)=>{if(e===void 0)return``;let n=e.label??String(e.value);switch(t){case`disabled`:return`${s(`gray`,q)} ${X(n,e=>s(`gray`,e))}${e.hint?` ${s(`dim`,`(${e.hint??`disabled`})`)}`:``}`;case`selected`:return`${X(n,e=>s(`dim`,e))}`;case`active`:return`${s(`green`,K)} ${n}${e.hint?` ${s(`dim`,`(${e.hint})`)}`:``}`;case`cancelled`:return`${X(n,e=>s([`strikethrough`,`dim`],e))}`;default:return`${s(`dim`,q)} ${X(n,e=>s(`dim`,e))}`}},n=e.showInstructions??!0;return new be({options:e.options,signal:e.signal,input:e.input,output:e.output,initialValue:e.initialValue,render(){let r=e.withGuide??P.withGuide,i=`${J(this.state)} `,a=`${Me(this.state)} `,o=z(e.output,e.message,a,i),c=`${r?`${s(`gray`,W)}
|
|
40
40
|
`:``}${o}
|
|
41
41
|
`;switch(this.state){case`submit`:{let n=r?`${s(`gray`,W)} `:``;return`${c}${z(e.output,t(this.options[this.cursor],`selected`),n)}`}case`cancel`:{let n=r?`${s(`gray`,W)} `:``;return`${c}${z(e.output,t(this.options[this.cursor],`cancelled`),n)}${r?`
|
|
42
42
|
${s(`gray`,W)}`:``}`}default:{let i=r?`${s(`cyan`,W)} `:``,a=c.split(`
|
|
@@ -44,7 +44,7 @@ ${s(`gray`,W)}`:``}`}default:{let i=r?`${s(`cyan`,W)} `:``,a=c.split(`
|
|
|
44
44
|
`),u=o.length+1;return`${c}${i}${Fe({output:e.output,cursor:this.cursor,options:this.options,maxItems:e.maxItems,columnPadding:i.length,rowPadding:a+u,style:(e,n)=>t(e,e.disabled?`disabled`:n?`active`:`inactive`)}).join(`
|
|
45
45
|
${i}`)}
|
|
46
46
|
${l}
|
|
47
|
-
`}}}}).prompt()};`${s(`gray`,W)}`;const
|
|
47
|
+
`}}}}).prompt()};`${s(`gray`,W)}`;const Ue=e=>new xe({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,output:e.output,signal:e.signal,input:e.input,render(){let t=e?.withGuide??P.withGuide,n=`${`${t?`${s(`gray`,W)}
|
|
48
48
|
`:``}${J(this.state)} `}${e.message}
|
|
49
49
|
`,r=e.placeholder&&e.placeholder.length>0?s(`inverse`,e.placeholder[0])+s(`dim`,e.placeholder.slice(1)):s([`inverse`,`hidden`],`_`),i=this.userInput?this.userInputWithCursor:r,a=this.value??``;switch(this.state){case`error`:{let e=this.error?` ${s(`yellow`,this.error)}`:``,r=t?`${s(`yellow`,W)} `:``,a=t?s(`yellow`,G):``;return`${n.trim()}
|
|
50
50
|
${r}${i}
|
|
@@ -52,7 +52,7 @@ ${a}${e}
|
|
|
52
52
|
`}case`submit`:{let e=a?` ${s(`dim`,a)}`:``;return`${n}${t?s(`gray`,W):``}${e}`}case`cancel`:{let e=a?` ${s([`strikethrough`,`dim`],a)}`:``,r=t?s(`gray`,W):``;return`${n}${r}${e}${a.trim()?`
|
|
53
53
|
${r}`:``}`}default:return`${n}${t?`${s(`cyan`,W)} `:``}${i}
|
|
54
54
|
${t?s(`cyan`,G):``}
|
|
55
|
-
`}}}).prompt();var
|
|
55
|
+
`}}}).prompt();var We=_(((e,t)=>{t.exports=a,a.sync=o;var n=b(`fs`);function r(e,t){var n=t.pathExt===void 0?process.env.PATHEXT:t.pathExt;if(!n||(n=n.split(`;`),n.indexOf(``)!==-1))return!0;for(var r=0;r<n.length;r++){var i=n[r].toLowerCase();if(i&&e.substr(-i.length).toLowerCase()===i)return!0}return!1}function i(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:r(t,n)}function a(e,t,r){n.stat(e,function(n,a){r(n,!n&&i(a,e,t))})}function o(e,t){return i(n.statSync(e),e,t)}})),Ge=_(((e,t)=>{t.exports=r,r.sync=i;var n=b(`fs`);function r(e,t,r){n.stat(e,function(e,n){r(e,!e&&a(n,t))})}function i(e,t){return a(n.statSync(e),t)}function a(e,t){return e.isFile()&&o(e,t)}function o(e,t){var n=e.mode,r=e.uid,i=e.gid,a=t.uid===void 0?process.getuid&&process.getuid():t.uid,o=t.gid===void 0?process.getgid&&process.getgid():t.gid,s=64,c=8,l=1,u=s|c;return n&l||n&c&&i===o||n&s&&r===a||n&u&&a===0}})),Ke=_(((e,t)=>{b(`fs`);var n=process.platform===`win32`||global.TESTING_WINDOWS?We():Ge();t.exports=r,r.sync=i;function r(e,t,i){if(typeof t==`function`&&(i=t,t={}),!i){if(typeof Promise!=`function`)throw TypeError(`callback not provided`);return new Promise(function(n,i){r(e,t||{},function(e,t){e?i(e):n(t)})})}n(e,t||{},function(e,n){e&&(e.code===`EACCES`||t&&t.ignoreErrors)&&(e=null,n=!1),i(e,n)})}function i(e,t){try{return n.sync(e,t||{})}catch(e){if(t&&t.ignoreErrors||e.code===`EACCES`)return!1;throw e}}})),qe=_(((e,t)=>{let n=process.platform===`win32`||process.env.OSTYPE===`cygwin`||process.env.OSTYPE===`msys`,r=b(`path`),i=n?`;`:`:`,a=Ke(),o=e=>Object.assign(Error(`not found: ${e}`),{code:`ENOENT`}),s=(e,t)=>{let r=t.colon||i,a=e.match(/\//)||n&&e.match(/\\/)?[``]:[...n?[process.cwd()]:[],...(t.path||process.env.PATH||``).split(r)],o=n?t.pathExt||process.env.PATHEXT||`.EXE;.CMD;.BAT;.COM`:``,s=n?o.split(r):[``];return n&&e.indexOf(`.`)!==-1&&s[0]!==``&&s.unshift(``),{pathEnv:a,pathExt:s,pathExtExe:o}},c=(e,t,n)=>{typeof t==`function`&&(n=t,t={}),t||={};let{pathEnv:i,pathExt:c,pathExtExe:l}=s(e,t),u=[],d=n=>new Promise((a,s)=>{if(n===i.length)return t.all&&u.length?a(u):s(o(e));let c=i[n],l=/^".*"$/.test(c)?c.slice(1,-1):c,d=r.join(l,e),p=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;a(f(p,n,0))}),f=(e,n,r)=>new Promise((i,o)=>{if(r===c.length)return i(d(n+1));let s=c[r];a(e+s,{pathExt:l},(a,o)=>{if(!a&&o){if(t.all)u.push(e+s);else return i(e+s)}return i(f(e,n,r+1))})});return n?d(0).then(e=>n(null,e),n):d(0)};t.exports=c,c.sync=(e,t)=>{t||={};let{pathEnv:n,pathExt:i,pathExtExe:c}=s(e,t),l=[];for(let o=0;o<n.length;o++){let s=n[o],u=/^".*"$/.test(s)?s.slice(1,-1):s,d=r.join(u,e),f=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+d:d;for(let e=0;e<i.length;e++){let n=f+i[e];try{if(a.sync(n,{pathExt:c})){if(t.all)l.push(n);else return n}}catch{}}}if(t.all&&l.length)return l;if(t.nothrow)return null;throw o(e)}})),Je=_(((e,t)=>{let n=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)===`win32`?Object.keys(t).reverse().find(e=>e.toUpperCase()===`PATH`)||`Path`:`PATH`};t.exports=n,t.exports.default=n})),Ye=_(((e,t)=>{let n=b(`path`),r=qe(),i=Je();function a(e,t){let a=e.options.env||process.env,o=process.cwd(),s=e.options.cwd!=null,c=s&&process.chdir!==void 0&&!process.chdir.disabled;if(c)try{process.chdir(e.options.cwd)}catch{}let l;try{l=r.sync(e.command,{path:a[i({env:a})],pathExt:t?n.delimiter:void 0})}catch{}finally{c&&process.chdir(o)}return l&&=n.resolve(s?e.options.cwd:``,l),l}function o(e){return a(e)||a(e,!0)}t.exports=o})),Xe=_(((e,t)=>{let n=/([()\][%!^"`<>&|;, *?])/g;function r(e){return e=e.replace(n,`^$1`),e}function i(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(n,`^$1`),t&&(e=e.replace(n,`^$1`)),e}t.exports.command=r,t.exports.argument=i})),Ze=_(((e,t)=>{t.exports=/^#!(.*)/})),Qe=_(((e,t)=>{let n=Ze();t.exports=(e=``)=>{let t=e.match(n);if(!t)return null;let[r,i]=t[0].replace(/#! ?/,``).split(` `),a=r.split(`/`).pop();return a===`env`?i:i?`${a} ${i}`:a}})),$e=_(((e,t)=>{let n=b(`fs`),r=Qe();function i(e){let t=Buffer.alloc(150),i;try{i=n.openSync(e,`r`),n.readSync(i,t,0,150,0),n.closeSync(i)}catch{}return r(t.toString())}t.exports=i})),et=_(((e,t)=>{let n=b(`path`),r=Ye(),i=Xe(),a=$e(),o=process.platform===`win32`,s=/\.(?:com|exe)$/i,c=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function l(e){e.file=r(e);let t=e.file&&a(e.file);return t?(e.args.unshift(e.file),e.command=t,r(e)):e.file}function u(e){if(!o)return e;let t=l(e),r=!s.test(t);if(e.options.forceShell||r){let r=c.test(t);e.command=n.normalize(e.command),e.command=i.command(e.command),e.args=e.args.map(e=>i.argument(e,r)),e.args=[`/d`,`/s`,`/c`,`"${[e.command].concat(e.args).join(` `)}"`],e.command=process.env.comspec||`cmd.exe`,e.options.windowsVerbatimArguments=!0}return e}function d(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:u(r)}t.exports=d})),tt=_(((e,t)=>{let n=process.platform===`win32`;function r(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:`ENOENT`,errno:`ENOENT`,syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function i(e,t){if(!n)return;let r=e.emit;e.emit=function(n,i){if(n===`exit`){let n=a(i,t);if(n)return r.call(e,`error`,n)}return r.apply(e,arguments)}}function a(e,t){return n&&e===1&&!t.file?r(t.original,`spawn`):null}function o(e,t){return n&&e===1&&!t.file?r(t.original,`spawnSync`):null}t.exports={hookChildProcess:i,verifyENOENT:a,verifyENOENTSync:o,notFoundError:r}})),nt=_(((e,t)=>{let n=b(`child_process`),r=et(),i=tt();function a(e,t,a){let o=r(e,t,a),s=n.spawn(o.command,o.args,o.options);return i.hookChildProcess(s,o),s}function o(e,t,a){let o=r(e,t,a),s=n.spawnSync(o.command,o.args,o.options);return s.error=s.error||i.verifyENOENTSync(s.status,o),s}t.exports=a,t.exports.spawn=a,t.exports.sync=o,t.exports._parse=r,t.exports._enoent=i})),rt=_(((e,t)=>{function n(e){return e==null?[]:Array.isArray(e)?e:[e]}function r(e,t,n,r){var i,a=e[t],o=~r.string.indexOf(t)?n==null||n===!0?``:String(n):typeof n==`boolean`?n:~r.boolean.indexOf(t)?n===`false`?!1:n===`true`||(e._.push((i=+n,i*0==0?i:n)),!!n):(i=+n,i*0==0?i:n);e[t]=a==null?o:Array.isArray(a)?a.concat(o):[a,o]}t.exports=function(e,t){e||=[],t||={};var i,a,o,s,c,l={_:[]},u=0,d=0,f=0,p=e.length;let m=t.alias!==void 0,h=t.unknown!==void 0,g=t.default!==void 0;if(t.alias=t.alias||{},t.string=n(t.string),t.boolean=n(t.boolean),m)for(i in t.alias)for(a=t.alias[i]=n(t.alias[i]),u=0;u<a.length;u++)(t.alias[a[u]]=a.concat(i)).splice(u,1);for(u=t.boolean.length;u-->0;)for(a=t.alias[t.boolean[u]]||[],d=a.length;d-->0;)t.boolean.push(a[d]);for(u=t.string.length;u-->0;)for(a=t.alias[t.string[u]]||[],d=a.length;d-->0;)t.string.push(a[d]);if(g){for(i in t.default)if(s=typeof t.default[i],a=t.alias[i]=t.alias[i]||[],t[s]!==void 0)for(t[s].push(i),u=0;u<a.length;u++)t[s].push(a[u])}let _=h?Object.keys(t.alias):[];for(u=0;u<p;u++){if(o=e[u],o===`--`){l._=l._.concat(e.slice(++u));break}for(d=0;d<o.length&&o.charCodeAt(d)===45;d++);if(d===0)l._.push(o);else if(o.substring(d,d+3)===`no-`){if(s=o.substring(d+3),h&&!~_.indexOf(s))return t.unknown(o);l[s]=!1}else{for(f=d+1;f<o.length&&o.charCodeAt(f)!==61;f++);for(s=o.substring(d,f),c=o.substring(++f)||u+1===p||(``+e[u+1]).charCodeAt(0)===45||e[++u],a=d===2?[s]:s,f=0;f<a.length;f++){if(s=a[f],h&&!~_.indexOf(s))return t.unknown(`-`.repeat(d)+s);r(l,s,f+1<a.length||c,t)}}}if(g)for(i in t.default)l[i]===void 0&&(l[i]=t.default[i]);if(m)for(i in l)for(a=t.alias[i]||[];a.length>0;)l[a.shift()]=l[i];return l}})),it=_(((e,t)=>{let n=process||{},r=n.argv||[],i=n.env||{},a=!(i.NO_COLOR||r.includes(`--no-color`))&&(!!i.FORCE_COLOR||r.includes(`--color`)||n.platform===`win32`||(n.stdout||{}).isTTY&&i.TERM!==`dumb`||!!i.CI),o=(e,t,n=e)=>r=>{let i=``+r,a=i.indexOf(t,e.length);return~a?e+s(i,t,n,a)+t:e+i+t},s=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},c=(e=a)=>{let t=e?o:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};t.exports=c(),t.exports.createColors=c})),at=y(nt(),1),ot=y(rt(),1),st=y(it(),1);const{green:ct,yellow:Q,blue:lt,redBright:ut,greenBright:dt}=st.default,ft=`\
|
|
56
56
|
用法: @huberyyang/create-todo-vue [参数]... [目录]
|
|
57
57
|
|
|
58
58
|
快速创建vue模板
|
|
@@ -65,6 +65,6 @@ ${t?s(`cyan`,G):``}
|
|
|
65
65
|
--overwrite 是否覆盖创建
|
|
66
66
|
|
|
67
67
|
可用模板:
|
|
68
|
-
${
|
|
69
|
-
${
|
|
70
|
-
${
|
|
68
|
+
${Q(`vanilla-ts vanilla`)}
|
|
69
|
+
${ct(`vue-ts vue`)}
|
|
70
|
+
${ut(`lit-ts lit`)}`,pt=`vue-project`,mt={boolean:[`help`,`version`,`overwrite`,`immediate`],alias:{h:`help`,v:`version`,t:`template`,i:`immediate`},string:[`template`]},ht=[{name:`vanilla`,display:`Vanilla`,color:Q,variants:[{name:`vanilla-ts`,display:`TypeScript`,color:lt},{name:`vanilla`,display:`JavaScript`,color:Q}]},{name:`vue`,display:`Vue`,color:ct,variants:[{name:`vue-ts`,display:`TypeScript`,color:lt},{name:`vue`,display:`JavaScript`,color:Q},{name:`custom-create-vue`,display:`Official Vue Starter ↗`,color:ct,customCommand:`npm create vue@latest TARGET_DIR`},{name:`custom-nuxt`,display:`Nuxt ↗`,link:`https://nuxt.com`,color:dt,customCommand:`npm exec nuxi init TARGET_DIR`},{name:`custom-vike-vue`,display:`Vike ↗`,link:`https://vike.dev`,color:dt,customCommand:`npm create -- vike@latest --vue TARGET_DIR`}]},{name:`lit`,display:`Lit`,color:ut,variants:[{name:`lit-ts`,display:`TypeScript`,color:lt},{name:`lit`,display:`JavaScript`,color:Q}]}],gt=ht.flatMap(e=>e.variants?.length?e.variants.map(e=>e.name):e.name),_t={_gitignore:`.gitignore`};function vt(e){let r=n.resolve(e);for(;;){let e=n.join(r,`package.json`);if(t.existsSync(e))return e;let i=n.dirname(r);if(i===r)return;r=i}}function yt(e){let n=vt(e);if(!n)return`unknown`;try{return JSON.parse(t.readFileSync(n,`utf-8`)).version??`unknown`}catch{return`unknown`}}function bt(e){return e.trim().replace(/\/+$/g,``)}function xt(e){if(!e)return;let t=e.split(` `)[0].split(`/`);return{name:t[0],version:t[1]}}function St(){return Le(`操作已取消`)}function Ct(e){let n=t.readdirSync(e);return n.length===0||n.length===1&&n[0]===`.git`}function wt(e){if(!t.existsSync(e))return!1;for(let r of t.readdirSync(e))r!==`.git`&&t.rmSync(n.resolve(e,r),{recursive:!0,force:!0})}function Tt(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function Et(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/^[._]/,``).replace(/[^a-z\d\-~]+/g,`-`)}function Dt(e,t){let n=t?.name||`npm`,r=n===`yarn`&&t?.version?.startsWith(`1.`);return e.replace(/^npm create (?:-- )?/,()=>n===`bun`?`bun x create-`:n===`deno`?`deno run -A npm:create-`:n===`pnpm`?`pnpm create `:e.startsWith(`npm create -- `)?`${n} create -- `:`${n} create `).replace(`@latest`,r?``:`@latest`).replace(/^npm exec /,()=>n===`pnpm`?`pnpm dlx `:n===`yarn`&&!r?`yarn dlx `:n===`bun`?`bun x `:n===`deno`?`deno run -A npm:`:`npm exec `)}function Ot(e){let{display:t,name:n,color:r,link:i}=e,a=r(t||n);return i&&(a+=` ${(0,st.underline)(i)}`),a}function kt(e,r){t.mkdirSync(r,{recursive:!0});for(let i of t.readdirSync(e))At(n.resolve(e,i),n.resolve(r,i))}function At(e,n){t.statSync(e).isDirectory()?kt(e,n):t.copyFileSync(e,n)}function jt(e){return e===`yarn`?[e]:[e,`install`]}function Mt([e,...t],n){let{status:i,error:a}=at.default.sync(e,t,n);i!=null&&i>0&&r.exit(i),a&&(console.error(`\n${e} ${t.join(` `)} 报错!`),console.error(a),r.exit(1))}function Nt(e,t){Y.step(`使用 ${t} 安装依赖...`),Mt(jt(t),{stdio:`inherit`,cwd:e})}function Pt(e,t){return e&&!t.includes(e)?{template:void 0,invalid:!0}:{template:e,invalid:!1}}function Ft(e,t){let r=n.basename(n.resolve(t,e));return{name:r,needsPrompt:!Tt(r)}}function It(e,t){let{customCommand:n}=e.flatMap(e=>e.variants?.length?e.variants:e).find(e=>e.name===t)??{};return n}function Lt(e,t){let[n,...r]=e.split(` `);return{command:n,args:r.map(e=>e.replace(`TARGET_DIR`,t))}}function Rt(e,t){let n=e=>t[e]??e,r=e.filter(e=>e!==`package.json`).map(e=>({kind:e===`index.html`?`index-html`:`copy`,from:e,to:n(e)}));return r.push({kind:`package-json`,from:`package.json`,to:n(`package.json`)}),r}function zt(e,t){return e.replace(/<title>.*?<\/title>/,`<title>${t}</title>`)}function Bt(e,t){let n=JSON.parse(e);return n.name=t,`${JSON.stringify(n,null,2)}\n`}function Vt(e,t,r){let i=n.relative(e,t),a=`创建完成,请执行:`;return e!==t&&(a+=`\n cd ${i.includes(` `)?`"${i}"`:i}`),a+=`\n ${jt(r).join(` `)}`,a}function Ht(e){let t=e.alias??{};return[...new Set([...e.boolean??[],...e.string??[],...Object.values(t),...Object.keys(t)])]}function Ut(e,t){let n=new Set(t);return Object.keys(e).filter(e=>e!==`_`&&!n.has(e))}function Wt({templateDir:e,root:r,packageName:i,renameFiles:a}){t.mkdirSync(r,{recursive:!0});let o=Rt(t.readdirSync(e),a);for(let a of o){let o=n.join(e,a.from),s=n.join(r,a.to);switch(a.kind){case`index-html`:t.writeFileSync(s,zt(t.readFileSync(o,`utf-8`),i));break;case`package-json`:t.writeFileSync(s,Bt(t.readFileSync(o,`utf-8`),i));break;case`copy`:At(o,s)}}}const Gt=o(import.meta.url),Kt=n.dirname(Gt),qt=n.resolve(Gt,`../..`),Jt=Ve();function $(){return St(),1}async function Yt(e=r.argv.slice(2)){let i=r.cwd(),a=(0,ot.default)(e,mt),o=a._[0]?bt(String(a._[0])):void 0,s=a.overwrite,c=a.template,l=a.immediate;if(a.help)return console.log(ft),0;if(a.version)return console.log(yt(Kt)),0;let u=Ut(a,Ht(mt));if(u.length)return console.error(`未知参数:${u.map(e=>`--${e}`).join(`, `)}`),console.error(`运行 create-todo-vue --help 查看可用参数`),1;Re(`create-todo-vue`);let d=xt(r.env.npm_config_user_agent),f=o;if(!f){let e=await Ue({message:`项目名称:`,defaultValue:pt,placeholder:pt,validate(e){return!e||bt(e).length>0?void 0:`项目名称无效`}});if(I(e))return $();f=bt(e)}if(t.existsSync(f)&&!Ct(f)){let e=s?`yes`:void 0;if(!e){let t=await Z({message:`${f===`.`?`当前目录`:`目标目录${f}`} 不为空,请选择如何继续`,options:[{label:`取消操作`,value:`no`},{label:`删除现有文件并继续`,value:`yes`},{label:`忽略文件并继续`,value:`ignore`}]});if(I(t))return $();e=t}switch(e){case`yes`:wt(f);break;case`no`:return $()}}let p=Ft(f,i),m=p.name;if(p.needsPrompt){let e=await Ue({message:`请输入package.json name`,defaultValue:Et(m),placeholder:Et(m),validate(e){if(e&&!Tt(e))return`无效的package.json name`}});if(I(e))return $();m=e}let{template:h,invalid:g}=Pt(c,gt),_=h;if(!_){let e=await Z({message:g?`${c}不是有效的模板名,请从以下选取:`:`选择模板`,options:ht.map(e=>{let{color:t,name:n,display:r}=e;return{label:t(r||n),value:e}})});if(I(e))return $();if(_=e.name,e.variants?.length){let t=await Z({message:`选择预设`,options:e.variants.map(e=>{let{name:t,customCommand:n}=e,r=n?Dt(n,d).replace(/ TARGET_DIR$/,``):void 0;return{label:Ot(e),value:t,hint:r}})});if(I(t))return $();_=t}}let v=d?.name||`npm`,y=n.join(i,f),b=It(ht,_);if(b){let{command:e,args:t}=Lt(Dt(b,d),f),{status:n}=at.default.sync(e,t,{stdio:`inherit`});r.exit(n??0)}Jt.start(`正在${y}中创建模板`),Wt({templateDir:n.resolve(qt,`template-${_}`),root:y,packageName:m,renameFiles:_t}),Jt.stop(`模板创建成功`);let x=l;if(x===void 0){let e=await Ie({message:`是否立即使用${v}安装依赖?`});if(I(e))return $();x=e}return x?Nt(y,v):ze(Vt(i,y,v)),Y.success(`程序结束`),0}async function Xt(){r.exitCode=1;try{r.exitCode=await Yt()}catch(e){Jt.error(`创建失败`),Y.error(e instanceof Error?e.message:String(e)),e instanceof Error&&e.stack&&console.error(e.stack),r.exit(1)}}export{Yt as main,Xt as runCli};
|