@tomjs/create-app 1.7.0 → 2.0.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 +1 -1
- package/README.zh_CN.md +1 -1
- package/dist/index.js +10 -22
- package/package.json +48 -51
- package/templates/{base/core → config/base}/.editorconfig +0 -4
- package/templates/config/base/.vscode/settings.json +50 -0
- package/templates/{base/core/_gitignore → config/base/_.gitignore} +1 -3
- package/templates/config/base/_commitlint.config.mjs +3 -0
- package/templates/config/base/_eslint.config.mjs +8 -0
- package/templates/config/base/lint-staged.config.mjs +3 -0
- package/templates/config/base/package.json +24 -0
- package/templates/config/base/pnpm-workspace.yaml +3 -0
- package/templates/config/base/simple-git-hooks.mjs +4 -0
- package/templates/{vscode → config/public}/LICENSE +1 -1
- package/templates/config/public/README.md +20 -0
- package/templates/config/public/README.zh_CN.md +20 -0
- package/templates/config/public/package.json +10 -0
- package/templates/config/style/lint-staged.config.mjs +7 -0
- package/templates/config/style/package.json +12 -0
- package/templates/config/style/stylelint.config.mjs +3 -0
- package/templates/{base/electron → electron-react}/.vscode/launch.json +23 -3
- package/templates/electron-react/.vscode/tasks.json +67 -0
- package/templates/electron-react/README.md +1 -1
- package/templates/electron-react/_eslint.config.mjs +8 -0
- package/templates/electron-react/electron/main/index.ts +71 -40
- package/templates/electron-react/electron/preload/index.ts +4 -0
- package/templates/electron-react/index.html +1 -2
- package/templates/electron-react/package.json +35 -1
- package/templates/electron-react/pnpm-workspace.yaml +6 -0
- package/templates/electron-react/src/App.css +6 -2
- package/templates/electron-react/src/App.tsx +12 -5
- package/templates/electron-react/src/index.css +14 -9
- package/templates/electron-react/tsconfig.json +9 -0
- package/templates/{base/electron → electron-react}/tsconfig.node.json +1 -1
- package/templates/electron-react/vite.config.ts +9 -22
- package/templates/electron-vue/.vscode/launch.json +48 -0
- package/templates/electron-vue/.vscode/tasks.json +67 -0
- package/templates/electron-vue/README.md +1 -1
- package/templates/electron-vue/_eslint.config.mjs +8 -0
- package/templates/electron-vue/electron/env.d.ts +1 -0
- package/templates/electron-vue/electron/main/index.ts +46 -30
- package/templates/electron-vue/electron/preload/index.ts +4 -0
- package/templates/electron-vue/index.html +1 -2
- package/templates/electron-vue/package.json +31 -2
- package/templates/electron-vue/pnpm-workspace.yaml +5 -0
- package/templates/electron-vue/src/App.vue +1 -1
- package/templates/electron-vue/src/style.css +15 -10
- package/templates/electron-vue/tsconfig.json +5 -0
- package/templates/electron-vue/tsconfig.node.json +7 -0
- package/templates/electron-vue/vite.config.ts +3 -21
- package/templates/{node-cli-legacy → node-base}/.vscode/launch.json +3 -6
- package/templates/node-base/package.json +15 -0
- package/templates/node-base/src/index.ts +5 -0
- package/templates/{node-cli-legacy → node-base}/tsconfig.json +1 -1
- package/templates/node-cli/.vscode/i18n-ally-custom-framework.yml +35 -0
- package/templates/node-cli/.vscode/launch.json +3 -6
- package/templates/node-cli/.vscode/settings.json +56 -0
- package/templates/node-cli/_.gitignore +59 -0
- package/templates/node-cli/locales/en-US.json +11 -0
- package/templates/node-cli/locales/zh-Hans.json +11 -0
- package/templates/node-cli/locales/zh-Hant.json +11 -0
- package/templates/node-cli/package.json +20 -20
- package/templates/node-cli/src/app.ts +19 -0
- package/templates/node-cli/src/config.ts +2 -2
- package/templates/node-cli/src/index.ts +77 -1
- package/templates/node-cli/src/types.ts +5 -1
- package/templates/node-cli/src/utils/exec.ts +68 -0
- package/templates/node-cli/src/utils/index.ts +3 -0
- package/templates/node-cli/src/utils/lang.ts +104 -0
- package/templates/node-cli/src/utils/util.ts +20 -0
- package/templates/node-cli/tsconfig.json +2 -2
- package/templates/node-cli/{tsup.config.ts → tsdown.config.ts} +3 -4
- package/templates/node-vite/examples/react/README.md +1 -0
- package/templates/node-vite/examples/react/_eslint.config.mjs +6 -0
- package/templates/{react → node-vite/examples/react}/index.html +1 -2
- package/templates/node-vite/examples/react/package.json +27 -0
- package/templates/{react → node-vite/examples/react}/src/App.css +5 -2
- package/templates/{react → node-vite/examples/react}/src/App.tsx +8 -9
- package/templates/{react → node-vite/examples/react}/src/index.css +15 -11
- package/templates/node-vite/examples/react/src/main.tsx +10 -0
- package/templates/node-vite/examples/react/tsconfig.json +5 -0
- package/templates/node-vite/examples/react/vite.config.ts +14 -0
- package/templates/node-vite/examples/vue/README.md +1 -0
- package/templates/node-vite/examples/vue/_eslint.config.mjs +6 -0
- package/templates/{vue → node-vite/examples/vue}/index.html +1 -2
- package/templates/node-vite/examples/vue/package.json +22 -0
- package/templates/{vue → node-vite/examples/vue}/src/App.vue +3 -3
- package/templates/node-vite/examples/vue/src/components/HelloWorld.vue +19 -0
- package/templates/{vue → node-vite/examples/vue}/src/main.ts +0 -1
- package/templates/{vue → node-vite/examples/vue}/src/style.css +16 -12
- package/templates/{base → node-vite/examples}/vue/tsconfig.json +2 -2
- package/templates/{vue → node-vite/examples/vue}/vite.config.ts +1 -1
- package/templates/node-vite/package.json +16 -0
- package/templates/node-vite/pnpm-lock.yaml +2293 -0
- package/templates/node-vite/pnpm-workspace.yaml +6 -0
- package/templates/{node → node-vite}/tsconfig.json +1 -1
- package/templates/{node-cli-legacy/tsup.config.ts → node-vite/tsdown.config.ts} +4 -5
- package/templates/vscode-base/.vscode/settings.json +59 -0
- package/templates/{vscode → vscode-base}/.vscode/tasks.json +2 -2
- package/templates/{base/node → vscode-base}/LICENSE +1 -1
- package/templates/{vscode/_gitignore → vscode-base/_.gitignore} +1 -0
- package/templates/vscode-base/locales/zh-CN.json +6 -0
- package/templates/{vscode → vscode-base}/package.json +12 -19
- package/templates/vscode-base/resources/logo.png +0 -0
- package/templates/vscode-base/resources/logo.svg +1 -0
- package/templates/{vscode/tsup.config.ts → vscode-base/tsdown.config.ts} +3 -3
- package/templates/{base/vscode → vscode-react}/.vscode/launch.json +14 -1
- package/templates/vscode-react/.vscode/settings.json +59 -0
- package/templates/{base/vscode → vscode-react}/.vscode/tasks.json +10 -1
- package/templates/{base/vscode → vscode-react}/LICENSE +1 -1
- package/templates/vscode-react/README.md +2 -2
- package/templates/{base/vscode/_gitignore → vscode-react/_.gitignore} +2 -1
- package/templates/{base/vscode → vscode-react}/extension/views/helper.ts +5 -4
- package/templates/{base/vscode → vscode-react}/extension/views/panel.ts +2 -1
- package/templates/vscode-react/package.json +65 -1
- package/templates/vscode-react/pnpm-workspace.yaml +5 -0
- package/templates/vscode-react/src/App.css +1 -1
- package/templates/vscode-react/src/App.tsx +16 -10
- package/templates/vscode-react/src/utils/vscode.ts +2 -81
- package/templates/vscode-react/src/vite-env.d.ts +1 -0
- package/templates/vscode-react/tsconfig.json +5 -0
- package/templates/vscode-react/vite.config.ts +4 -5
- package/templates/vscode-vue/.vscode/extensions.json +5 -0
- package/templates/vscode-vue/.vscode/launch.json +34 -0
- package/templates/vscode-vue/.vscode/settings.json +59 -0
- package/templates/{base/electron → vscode-vue}/.vscode/tasks.json +14 -6
- package/templates/vscode-vue/.vscodeignore +73 -0
- package/templates/vscode-vue/LICENSE +21 -0
- package/templates/vscode-vue/README.md +2 -2
- package/templates/vscode-vue/_.gitignore +65 -0
- package/templates/vscode-vue/extension/env.d.ts +1 -0
- package/templates/vscode-vue/extension/index.ts +21 -0
- package/templates/vscode-vue/extension/views/helper.ts +28 -0
- package/templates/vscode-vue/extension/views/panel.ts +49 -0
- package/templates/vscode-vue/locales/en.json +6 -0
- package/templates/vscode-vue/package.json +56 -2
- package/templates/vscode-vue/pnpm-workspace.yaml +4 -0
- package/templates/vscode-vue/src/App.vue +17 -11
- package/templates/vscode-vue/src/utils/vscode.ts +2 -81
- package/templates/vscode-vue/src/vite-env.d.ts +1 -0
- package/templates/vscode-vue/tsconfig.json +5 -0
- package/templates/vscode-vue/tsconfig.node.json +7 -0
- package/templates/vscode-vue/vite.config.ts +0 -4
- package/templates/web-react/README.md +1 -0
- package/templates/web-react/_eslint.config.mjs +6 -0
- package/templates/web-react/index.html +13 -0
- package/templates/web-react/package.json +27 -0
- package/templates/web-react/public/vite.svg +1 -0
- package/templates/web-react/src/App.css +45 -0
- package/templates/web-react/src/App.tsx +31 -0
- package/templates/web-react/src/assets/react.svg +1 -0
- package/templates/web-react/src/index.css +73 -0
- package/templates/web-react/src/main.tsx +10 -0
- package/templates/web-react/tsconfig.app.json +28 -0
- package/templates/web-react/tsconfig.json +7 -0
- package/templates/web-react/tsconfig.node.json +26 -0
- package/templates/web-react/vite.config.ts +14 -0
- package/templates/web-vue/README.md +1 -0
- package/templates/web-vue/_eslint.config.mjs +6 -0
- package/templates/web-vue/index.html +13 -0
- package/templates/web-vue/package.json +22 -0
- package/templates/web-vue/public/vite.svg +1 -0
- package/templates/web-vue/src/App.vue +32 -0
- package/templates/web-vue/src/assets/vue.svg +1 -0
- package/templates/web-vue/src/components/HelloWorld.vue +19 -0
- package/templates/web-vue/src/main.ts +5 -0
- package/templates/web-vue/src/style.css +84 -0
- package/templates/web-vue/tsconfig.app.json +4 -0
- package/templates/web-vue/tsconfig.json +7 -0
- package/templates/web-vue/tsconfig.node.json +7 -0
- package/templates/web-vue/vite.config.ts +7 -0
- package/templates/base/core/.commitlintrc.cjs +0 -3
- package/templates/base/core/.eslintignore +0 -14
- package/templates/base/core/.husky/commit-msg +0 -1
- package/templates/base/core/.husky/pre-commit +0 -1
- package/templates/base/core/.prettierignore +0 -17
- package/templates/base/core/.prettierrc.cjs +0 -1
- package/templates/base/core/_eslintrc.cjs +0 -7
- package/templates/base/core/_lintstagedrc.cjs +0 -4
- package/templates/base/core/package.json +0 -31
- package/templates/base/electron/electron/main/index.ts +0 -111
- package/templates/base/electron/electron/polyfills.ts +0 -4
- package/templates/base/electron/electron/preload/index.ts +0 -1
- package/templates/base/electron/package.json +0 -25
- package/templates/base/node/README.md +0 -13
- package/templates/base/node/README.zh_CN.md +0 -13
- package/templates/base/node/package.json +0 -48
- package/templates/base/node/test/index.test.ts +0 -7
- package/templates/base/package/package.json +0 -8
- package/templates/base/react/_eslintrc.cjs +0 -7
- package/templates/base/react/_lintstagedrc.cjs +0 -6
- package/templates/base/react/package.json +0 -19
- package/templates/base/react/tsconfig.json +0 -5
- package/templates/base/style/.stylelintignore +0 -16
- package/templates/base/style/.stylelintrc.cjs +0 -3
- package/templates/base/style/_lintstagedrc.cjs +0 -5
- package/templates/base/style/package.json +0 -10
- package/templates/base/vscode/.vscode/settings.json +0 -10
- package/templates/base/vscode/package.json +0 -67
- package/templates/base/vue/_eslintrc.cjs +0 -7
- package/templates/base/vue/_lintstagedrc.cjs +0 -6
- package/templates/base/vue/package.json +0 -17
- package/templates/config.json +0 -108
- package/templates/electron-react/public/img/icon.png +0 -0
- package/templates/electron-vue/public/img/icon.png +0 -0
- package/templates/node/package.json +0 -10
- package/templates/node/src/index.ts +0 -3
- package/templates/node/tsup.config.ts +0 -19
- package/templates/node-cli/index.d.ts +0 -5
- package/templates/node-cli/src/cli.ts +0 -68
- package/templates/node-cli/xxx.config.cjs +0 -0
- package/templates/node-cli-legacy/index.d.ts +0 -5
- package/templates/node-cli-legacy/package.json +0 -30
- package/templates/node-cli-legacy/src/cli.ts +0 -45
- package/templates/node-cli-legacy/src/config.ts +0 -28
- package/templates/node-cli-legacy/src/index.ts +0 -3
- package/templates/node-cli-legacy/src/types.ts +0 -1
- package/templates/node-cli-legacy/src/utils.ts +0 -5
- package/templates/node-vite-plugin/package.json +0 -18
- package/templates/node-vite-plugin/test/index.test.ts +0 -7
- package/templates/node-vite-plugin/tsconfig.json +0 -4
- package/templates/node-vite-plugin/tsup.config.ts +0 -18
- package/templates/node-workspaces/package.json +0 -8
- package/templates/react/package.json +0 -12
- package/templates/react/src/main.tsx +0 -11
- package/templates/react/src/vite-env.d.ts +0 -1
- package/templates/react/vite.config.ts +0 -7
- package/templates/schema.json +0 -110
- package/templates/vscode/.vscode/settings.json +0 -10
- package/templates/vscode/README.md +0 -3
- package/templates/vue/package.json +0 -12
- package/templates/vue/src/components/HelloWorld.vue +0 -37
- package/templates/vue/src/vite-env.d.ts +0 -1
- package/templates/{base/core → config/base}/.gitattributes +0 -0
- package/templates/{node-cli-legacy/xxx.config.cjs → config/base/README.md} +0 -0
- package/templates/{base/electron → electron-react}/electron/env.d.ts +0 -0
- package/templates/{react → node-vite/examples/react}/public/vite.svg +0 -0
- package/templates/{react → node-vite/examples/react}/src/assets/react.svg +0 -0
- package/templates/{base → node-vite/examples}/react/tsconfig.node.json +0 -0
- package/templates/{vue → node-vite/examples/vue}/public/vite.svg +0 -0
- package/templates/{vue → node-vite/examples/vue}/src/assets/vue.svg +0 -0
- package/templates/{base → node-vite/examples}/vue/tsconfig.node.json +0 -0
- package/templates/{node-vite-plugin → node-vite}/src/index.ts +0 -0
- package/templates/{node-vite-plugin → node-vite}/src/types.ts +0 -0
- package/templates/{base/vscode → vscode-base}/.vscode/extensions.json +0 -0
- package/templates/{vscode → vscode-base}/.vscode/launch.json +0 -0
- package/templates/{vscode → vscode-base}/.vscodeignore +0 -0
- package/templates/{base/vscode → vscode-base}/README.md +0 -0
- package/templates/{vscode → vscode-base}/locales/en.json +0 -0
- package/templates/{vscode → vscode-base}/src/index.ts +1 -1
- package/templates/{vscode → vscode-base}/tsconfig.json +0 -0
- package/templates/{vscode → vscode-react}/.vscode/extensions.json +0 -0
- package/templates/{base/vscode → vscode-react}/.vscodeignore +0 -0
- package/templates/{base/vscode → vscode-react}/extension/env.d.ts +0 -0
- package/templates/{base/vscode → vscode-react}/extension/index.ts +1 -1
- /package/templates/{base/vscode → vscode-react}/locales/en.json +0 -0
- /package/templates/{base/vscode → vscode-react}/locales/zh-CN.json +0 -0
- /package/templates/{base/vscode → vscode-react}/resources/logo.png +0 -0
- /package/templates/{base/vscode → vscode-react}/resources/logo.svg +0 -0
- /package/templates/{base/vscode → vscode-react}/tsconfig.node.json +0 -0
- /package/templates/{vscode → vscode-vue}/locales/zh-CN.json +0 -0
- /package/templates/{vscode → vscode-vue}/resources/logo.png +0 -0
- /package/templates/{vscode → vscode-vue}/resources/logo.svg +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @tomjs/create-app
|
|
2
2
|
|
|
3
|
-
    
|
|
4
4
|
|
|
5
5
|
**English** | [中文](./README.zh_CN.md)
|
|
6
6
|
|
package/README.zh_CN.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[English](./README.md) | **中文**
|
|
4
4
|
|
|
5
|
-
    
|
|
6
6
|
|
|
7
7
|
> 创建基于 [vite](https://github.com/vitejs/vite) + [tomjs](https://github.com/tomjs) 的 web 应用。
|
|
8
8
|
|
package/dist/index.js
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
${u.map(y=>` - '${y}/*'
|
|
3
|
-
`)}`)}else n.workspaces??=u.map(l=>`"${l}/*"`),M(o,n);let c=n.devDependencies??{};p&&"vitest"in c&&T(g.join(o,"vitest.config.ts"),'export default ["packages/*"];')}await Ge(t)}async function ue(e,t){let o=!0,s=0;for(;o;){s++;let r=await me(e,t||b.cwd,s===1?b.template:void 0),{pkgName:i}=r.userOptions;W(e,r),await J(r),d.success(`${x.green(i)} created successfully!`),o=await h(`Do you want to create another ${e}?`)}}function oe(e,...t){!Array.isArray(t)||t.length===0||t.forEach(o=>{let s=g.join(e,o);w.existsSync(s)&&N(s)})}function Ve(e,t,o){if(!w.existsSync(e))return;let s=ie(e);s=s.replaceAll(t,o),T(e,s)}function Qe(e,t,o){let s=o.userOptions,{textVars:r}=s;if(["scripts","dependencies","devDependencies","peerDependencies"].forEach(i=>{e[i]&&(i==="scripts"?e[i]=re(e[i],Ue,["prepare"]):e[i]=re(e[i]))}),t==="example"?(delete e.types,delete e.exports,delete e.publishConfig,delete e.repository,delete e.module,delete e.license,e.private=!0):t==="package"&&(e.repository&&typeof e.repository=="object"&&(e.repository.directory=`packages/${r.pkgShortName}`),e.scripts&&Object.keys(e.scripts).forEach(i=>{i.startsWith("lint")&&delete e.scripts[i]})),!o.test){let i=e.scripts;if(i){delete i.test;{let a=i["lint:eslint"]||"";a&&(i["lint:eslint"]=a.replace(",test",""))}}delete e.devDependencies?.vitest}e.type==="commonjs"&&delete e.type,e.private===!1&&delete e.private,o.userOptions.gitUserUrl||delete e.repository}function W(e,t,o){let s=o??t.userOptions.projectDir,r=g.join(s,".temp");$e(r);let i=t.templates||[],a=[];e==="package"?a=["base/package"]:e==="project"&&(a=["base/core"]);let p=a.concat(i);if(p.forEach((n,m)=>{let u=g.join(pe,n);if(!w.existsSync(u))return;Ee(u,s);let c=R(r)||{},l=Ce(c,R(s));if(m===p.length-1){let y={};Ne.forEach(j=>{j in l&&(y[j]=l[j],delete l[j])}),l=Object.assign(y,l),Qe(l,e,t),M(s,l)}else M(r,l)}),N(r),t.test||(oe(s,"test"),Ve(g.join(s,"tsconfig.json"),', "test"',"")),e==="package"){let n=[".vscode"].concat(t.packages?.exclude??[]);oe(s,...n)}}async function J(e,t){let o=e.userOptions,{textVars:s}=o,r=t??o.projectDir;w.readdirSync(r).filter(p=>p.startsWith("_")).forEach(p=>{w.renameSync(g.join(r,p),g.join(r,p.replace("_",".")))});let i=R(r),a=["LICENSE","README.md","README.zh_CN.md"];!i.publishConfig&&!i.publisher&&a.forEach(p=>{N(g.join(r,p))}),["package.json",...a].forEach(p=>{let n=g.join(r,p);if(!w.existsSync(n))return;let m=ie(n);Object.keys(s).forEach(u=>{m=m.replace(new RegExp("{{"+u+"}}","g"),s[u])}),T(n,m)})}async function me(e,t,o){let{gitRepos:s}=await te(),r=(b.name||"").trim(),i=se(r);(!r||!i)&&(r=await V("Package name:",{validate:c=>se(c)?!0:"Please input a valid name!"}));let a=_e(r);a!==r&&(a=await V("Project name:",{default:a,validate:c=>Fe(c)?!0:"Please input a valid name!"})),d.debug("projectName:",a);let p=g.join(t,a);w.existsSync(p)&&await h("Project already exists, overwrite?")&&N(p),d.debug("projectDir:",p);let n;o&&Re.includes(o)&&(n=I.find(c=>c.name===o));let m=async c=>{let l=await v(!n&&c?`${x.red(c)} is invalid, please select a framework again:`:"Select a framework:",A.filter(f=>!f.variants||!f.variants.length?!1:e==="package"?f.variants.filter(E=>!E.packages?.ignore).length>0:!0).map(f=>({name:f.display,value:f.name})));d.debug("framework:",l);let y=A.find(f=>f.name===l)?.variants||[],j=e==="package"?y.filter(f=>!f.packages?.ignore).map(f=>{let E=f.parent;return E?{name:`${E.display} > ${f.display}`,value:f.name}:{name:f.display,value:f.name}}):y.map(f=>({name:f.display,value:f.name})),we=A.find(f=>f.name===l)?.display,U=await v(`Select a ${x.blue(we)} variant:`,j.concat([{name:x.yellow("\u2190 Back"),value:"_"}]));d.debug("variant:",U),U==="_"?await m(c):n=y.find(f=>f.name===U)};if(n||await m(o),!n)throw new Error("variant not found");n=ce(n),n.templates||(n.templates=[]),n.templates=fe(n.templates).concat(n.name),d.debug("variant:",n),e==="project"&&Array.isArray(n.examples)&&(n.examples=await K("Select examples:",n.examples.map(c=>{let l=I.find(y=>y.name===c);if(!l)throw new Error(`Can't find example ${x.yellow(c)} from ${x.blue(n.name)}`);return{name:l.display,value:l.name,checked:!0}}),{required:!1}));let u="";if(e==="example"?(n.devDependencies=0,n.workspaces=!1,n.test=!1):e==="package"?n.workspaces=!1:n.git&&(u=await v("Which git repository do you want to choose?",s.map(c=>{let l=q(c);return{name:l,value:l}}).concat([{name:x.yellow("None"),value:""}]))),n.devDependencies===2){let c=await h("Whether it will be used for devDependencies?");n.devDependencies=c?1:0}return n.test&&(n.test=await h("Whether to use test?")),n.userOptions={pkgName:r,projectDir:p,gitUserUrl:u},await ge(n),n}function fe(e){let t=[],o=async s=>{if(!(!Array.isArray(s)||!s.length))for(let r of s){if(r.startsWith("base/")){t.push(r);continue}let i=I.find(a=>a.name===r);if(!i){d.warning(`Can't find template ${x.yellow(r)}`);continue}o(i.templates)}};return o(e),[...new Set(t)]}async function ge(e){let{pkgName:t,gitUserUrl:o}=e.userOptions,s=await ne("user.name"),r=await ne("user.email"),i={name:s||Ae.userInfo().username,email:r||""},a=["pnpm","yarn","npm"].map(c=>`# ${c}
|
|
4
|
-
${c} add ${t}${e.devDependencies?" -D":""}`).join(`
|
|
5
|
-
|
|
6
|
-
`),p={pkgName:t,pkgShortName:t.startsWith("@")?t.split("/")[1]:t,pkgInstall:a,gitUserName:i.name,gitUserEmail:i.email,gitOrg:m(),gitUrl:n(),gitFullUrl:u(),gitFullSSHUrl:u(),dateYear:new Date().getFullYear()};function n(){return`${o||`https://github.com/${m()}`}/${t.substring(t.indexOf("/")+1)}`}function m(){return o?o.substring(o.lastIndexOf("/")+1):t.startsWith("@")?t.split("/")[0].substring(1):De(i.name)}function u(c=!1){let l=o||`https://github.com/${m()}`;return c&&(l=l.replace(/http(s):\/\//g,"git@").replace(/\//,":")),`${l}/${t.substring(t.indexOf("/")+1)}.git`}return e.userOptions.textVars=p,p}async function Ge(e){let{gitUserUrl:t,textVars:o,projectDir:s}=e.userOptions;t&&(await D("git init",{cwd:s}),await D(`git remote add origin ${o.gitFullSSHUrl}`,{cwd:s}));let r=process.cwd(),i=g.relative(r,s);console.log(`
|
|
7
|
-
Done. Now run:
|
|
8
|
-
`),s!==r&&console.log(` cd ${i.includes(" ")?`"${i}"`:i}`);let a=Q()||"npm";switch(a){case"yarn":console.log(" yarn"),console.log(" yarn dev");break;default:console.log(` ${a} install`),console.log(` ${a} run dev`);break}}var z=qe(`
|
|
1
|
+
import e from"meow";import t from"node:fs";import n from"node:fs/promises";import r from"node:os";import i from"node:path";import{fileURLToPath as a}from"node:url";import*as o from"@clack/prompts";import{copy as s,mkdir as c,mkdirp as l,readFile as u,readJson as d,rm as f,rmSync as p,writeFile as m,writeJson as h}from"@tomjs/node";import{merge as g,omit as ee}from"lodash-es";import{glob as _}from"tinyglobby";import v from"chalk";import{$ as y}from"execa";import b from"@tomjs/logger";const x=a(new URL(`..`,import.meta.url)),S=[{name:`node`,display:`Node`,color:v.green,children:[{name:`node-base`,display:`Base`,color:v.green},{name:`node-cli`,display:`CLI`,color:v.green},{name:`node-vite`,display:`Vite Plugin`,color:v.blue,hasStyle:!0}]},{name:`web`,display:`Web`,color:v.magenta,children:[{name:`web-vue`,display:`Vue`,color:v.green,hasStyle:!0,isPublic:!1},{name:`web-react`,display:`React`,color:v.blue,hasStyle:!0,isPublic:!1}]},{name:`vscode`,display:`VSCode`,color:v.blue,children:[{name:`vscode-base`,display:`Base`,color:v.yellow,isPublic:`public`},{name:`vscode-vue`,display:`Vue`,color:v.green,hasStyle:!0,isPublic:`public`},{name:`vscode-react`,display:`React`,color:v.blue,hasStyle:!0,isPublic:`public`}]},{name:`electron`,display:`Electron`,color:v.cyan,children:[{name:`electron-vue`,display:`Vue`,color:v.green,hasStyle:!0,isPublic:!1},{name:`electron-react`,display:`React`,color:v.blue,hasStyle:!0,isPublic:!1}]}],C=[{id:`github`,name:`Github`,url:`https://github.com`},{id:`gitcode`,name:`GitCode`,url:`https://gitcode.com`},{id:`gitee`,name:`码云`,url:`https://gitee.com`}],w=`publisher.name.displayName.type.version.private.packageManager.description.author.contributors.license.funding.homepage.repository.publishConfig.bugs.keywords.categories.sideEffects.imports.exports.main.module.unpkg.jsdelivr.types.typesVersions.bin.icon.files.engines.activationEvents.contributes.scripts.peerDependencies.peerDependenciesMeta.dependencies.optionalDependencies.devDependencies.pnpm.overrides.resolutions.husky.simple-git-hooks.lint-staged.eslintConfig`.split(`.`),T=[`dev`,`dev:`,`debug`,`debug:`,`start`,`build`,`build:`,`preview`,`release`,`release:`,`clean`,`clean:`,`test`,`lint`,`lint:`],E=new b({directory:`create-app/logs`}),te=process.platform===`win32`;let D={};function O(e){D=e}function k(){return D}async function A(e,t){let{trim:n,...r}=Object.assign({stdio:`pipe`,shell:!0},t);Array.isArray(e)&&(e=e.join(` `));let i=e=>{k().verbose?E.debug(e):E.write(e)};i(`$ ${e}`);try{let t=(await y(r)`${e}`).stdout;return i(t),n?t.trim().replace(/\n|\r/g,``):t.trim()}catch(e){let t=e.stderr||e.message;throw i(t),Error(t)}}function j(e){if(e===`C`)return`en-US`;let t=``;try{t=Intl.getCanonicalLocales(e)[0]}catch(t){console.log(`${t.toString()}, invalid language tag: "${e}"\n`)}switch(t){case`zh-TW`:case`zh-HK`:case`zh-MO`:case`zh-CN`:case`zh-SG`:t=`zh-CN`;break;default:t=e}return t}function M(){return j((process.env.LC_ALL||process.env.LC_MESSAGES||process.env.LANG||Intl.DateTimeFormat().resolvedOptions().locale||`en-US`).split(`.`)[0].replace(`_`,`-`))}async function N(e){return await t.promises.readFile(e,`utf-8`).then(e=>JSON.parse(e)||{})}async function ne(e){let n=M(),r=i.resolve(e,`${n}.json`),a=i.resolve(e,`en-US.json`);return t.existsSync(r)?await N(r):await N(a)}const P=await ne(i.join(x,`locales`));function F(...e){if(e.length===0||!P)return``;let[t,...n]=e,r=P[t]??``;if(n[0]===null||n[0]===void 0||n[0]===``)return r;let i=typeof n[0]==`object`?n[0]:n;return r.replace(/\{([^}]+)\}/g,(e,t)=>i[t]??e)}const re=i.join(a(import.meta.url),`../../`),I=i.join(re,`templates`),L=()=>o.cancel(F(`prompt.cancel`));async function R(e){O(e);let t=await z(e);t&&await B(t)}async function z(e){let n=async function(){let e=await o.select({message:F(`prompt.templateType.message`),options:S.map(e=>({label:e.color(e.display||e.name),value:e.name}))});if(o.isCancel(e))return L();let t=S.find(t=>t.name===e),r=await o.select({message:F(`prompt.template.message`),options:t.children.map(e=>({label:e.color(e.display||e.name),value:e.name})).concat({label:F(`prompt.template.back`),value:`back`})});return o.isCancel(r)?L():r===`back`?await n():{template:r,templateOptions:t.children.find(e=>e.name===r)}},a=await n();if(!a)return;let{template:s,templateOptions:c}=a,l=V(e.dir);if(!l||[`.`,`~`].includes(l)){let e=await o.text({message:F(`prompt.project.message`),defaultValue:s,placeholder:s,validate:e=>e.length===0||V(e).length>0?void 0:F(`prompt.project.invalid`)});if(o.isCancel(e))return L();l=i.resolve(l===`~`&&!te?r.homedir():process.cwd(),V(e))}if(t.existsSync(l)&&!H(l)){let t=e.overwrite;if(!t){let e=await o.select({message:F(`prompt.exist.message`,l),options:[{label:F(`prompt.exist.option.no`),value:`no`},{label:F(`prompt.exist.option.yes`),value:`yes`},{label:F(`prompt.exist.option.ignore`),value:`ignore`}]});if(o.isCancel(e))return L();t=e}switch(t){case`yes`:U(l);break;case`no`:L();return}}let u=i.basename(i.resolve(l)),d=await o.text({message:F(`prompt.package.message`),defaultValue:K(u),placeholder:K(u),validate:e=>e.length===0||W(e)?void 0:F(`prompt.package.invalid`)});if(o.isCancel(d))return L();u=d;let f;if(e.private!==!0&&c.isPublic!==`public`){let e=await o.confirm({message:F(`prompt.public.message`),active:F(`prompt.confirm.yes`),inactive:F(`prompt.confirm.no`),initialValue:c.isPublic??!0});if(o.isCancel(e))return L();f=e}else f=!e.private;let p;if(f){let e=await o.select({message:F(`prompt.gitUrl.message`),options:C.map(e=>({label:`${e.name} (${e.url})`,value:e.id}))});if(o.isCancel(e))return L();p=C.find(t=>t.id===e)?.url}let m;if(f){let e=J(u);e||await q(`user.email`)===`tom@tomgao.cc`&&(e=`tomjs`);let t=await o.text({message:F(`prompt.gitOrg.message`),defaultValue:e,placeholder:e,validate:t=>e&&!t||G(t)?void 0:F(`prompt.gitOrg.invalid`)});if(o.isCancel(t))return L();m=t}return{targetDir:l,packageName:u,template:s,templateOptions:c,isPublic:f,gitUrl:p,gitOrg:m}}async function B(e){E.debug(`projectOptions:`,ee(e,`templateOptions`));let{targetDir:t,packageName:a,template:o,isPublic:p,gitUrl:v,gitOrg:y,templateOptions:b}=e;await c(t);let x=o.includes(`vscode`),S={},C=i.join(t,`.temp`);if(await l(C),await Y(S,`base`,C),b.hasStyle&&await Y(S,`style`,C),p&&!x&&await Y(S,`public`,C),await s(C,t),await f(C),await s(i.join(I,o),t),g(S,await d(i.join(i.join(I,o),`package.json`))),S.name=a,p){delete S.private,S.name=a,S.license=`MIT`;let e=await q(`user.name`)||r.userInfo().username,n=await q(`user.email`);e&&n?S.author={name:e,email:n}:e&&(S.author=e);let o=`${v}/${y}/${i.basename(t)}`;x?(S.publisher=y,S.homepage=`${o}/blob/main/README.md`,S.bugs={url:`${o}/issues`}):delete S.publishConfig,S.repository={type:`git`,url:`git+${o}.git`}}else S.private=!0,delete S.publishConfig,S.devDependencies&&delete S.devDependencies.publint;if(await h(i.join(t,`package.json`),ae(S)),p){let{author:e}=S,r=``;e&&(typeof e==`string`?r=e:typeof e==`object`&&(e.name&&e.email?r=`${e.name}<${e.email}>`:e.name?r=e.name:e.email&&(r=e.email)));let o={pkgName:a,dateYear:new Date().getFullYear(),gitUserName:r},s=(await n.readdir(t)).filter(e=>[`README.md`,`README.zh_CN.md`,`LICENSE`].includes(e));for(let e of s){let n=await u(i.join(t,e));Object.keys(o).forEach(e=>{n=n.replace(RegExp(`{{${e}}}`,`g`),o[e])}),await m(i.join(t,e),n)}}let w=await _(`**/_*`,{ignore:[`**/node_modules/**`,`**/.*`],cwd:t});for(let e of w){let r=e.split(`/`);r[r.length-1]=r[r.length-1].substring(1),await n.rename(i.join(t,e),i.join(t,r.join(`/`)))}await A(`git init`,{cwd:t})}function V(e){return(e||``).trim().replace(/\/+$/g,``)}function H(e){return t.readdirSync(e).length===0}function U(e){t.existsSync(e)&&p(e)}function W(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function G(e){return/^[a-z][a-z\d\-._]*$/.test(e)}function K(e){return e.trim().toLowerCase().replace(/\s+/g,`-`).replace(/^[._]/,``).replace(/[^a-z\d\-~]+/g,`-`)}async function q(e){return A(`git config --get ${e}`,{trim:!0})}function J(e){if(e.startsWith(`@`))return e.split(`/`)[0].substring(1)}async function Y(e,t,r){let a=i.join(I,`config/${t}`),o=await n.readdir(a);for(let t of o)[`node_modules`,`.git`].includes(t)||(t===`package.json`?g(e,await d(i.join(a,`package.json`))):await s(i.join(a,t),i.join(r,t)))}function X(e,t){if(!e)return e;let n={};return Array.isArray(t)&&t.length>0?(t.filter(t=>t in e).forEach(t=>{n[t]=e[t]}),Object.keys(e).filter(e=>!t.includes(e)).sort().forEach(t=>{n[t]=e[t]})):Object.keys(e).sort().forEach(t=>{n[t]=e[t]}),n}function ie(e,t,n){let r={},i=Object.keys(e);{let e=i.filter(e=>e.includes(`:`));i=i.filter(e=>!e.includes(`:`)).sort().concat(e)}let a=s(t),o=s(n);return a.concat(i.filter(e=>!a.includes(e)&&!o.includes(e))).concat(o).forEach(t=>{r[t]=e[t]}),r;function s(e){let t=Array.isArray(e)?e:[];return t.length>0&&(t=t.reduce((e,t)=>{if(t.endsWith(`:`)){let n=i.filter(n=>!e.includes(n)&&n.startsWith(t));return e.concat(n)}return i.includes(t)?e.concat(t):e},[])),t}}function ae(e){return e=X(e,w),e.scripts&&=ie(e.scripts,T,[`prepare`,`prepublishOnly`]),[`dependencies`,`devDependencies`,`peerDependencies`].forEach(t=>{e[t]&&(e[t]=X(e[t]))}),e}const Z=e(`
|
|
9
2
|
Usage
|
|
10
|
-
$ create-app [
|
|
3
|
+
$ create-app [options] <dir>
|
|
11
4
|
|
|
12
|
-
|
|
5
|
+
dir ${F(`options.dir`)}
|
|
13
6
|
|
|
14
7
|
Options
|
|
15
|
-
--
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Examples
|
|
24
|
-
$ create-app my-project
|
|
25
|
-
$ create-app my-project --template=vue
|
|
26
|
-
`,{importMeta:import.meta,booleanDefault:void 0,helpIndent:0,flags:{cwd:{type:"string"},verbose:{type:"boolean",default:process.env.NODE_ENV==="development"},example:{shortFlag:"e",type:"boolean"},package:{shortFlag:"p",type:"boolean"},h:{type:"boolean",default:!1},v:{type:"boolean",default:!1}}}),{input:de,flags:P}=z;if(P.h)z.showHelp(0);else if(P.v)z.showVersion();else{d.enableDebug(P.verbose),d.debug("cli options:",de,P);let e=Object.assign({name:de[0],type:"project"},P);e.cwd||=process.cwd(),e.example??=ye(process.env.CA_EXAMPLE),e.package??=ye(process.env.CA_PACKAGE),d.debug("final options:",e),e.type=Me(e),await le(e)}function Me(e){return e.example?"example":e.package?"package":"project"}function ye(e){return e==="1"||e==="true"}
|
|
8
|
+
-o, --overwrite ${F(`options.overwrite`)}
|
|
9
|
+
-p, --private ${F(`options.private`)}
|
|
10
|
+
-i, --install ${F(`options.install`)}
|
|
11
|
+
--verbose ${F(`options.verbose`)}
|
|
12
|
+
-h, --help ${F(`options.help`)}
|
|
13
|
+
-v, --version ${F(`options.version`)}
|
|
14
|
+
`,{importMeta:import.meta,booleanDefault:void 0,helpIndent:0,flags:{overwrite:{type:`string`},private:{type:`boolean`,shortFlag:`p`},install:{type:`boolean`,shortFlag:`i`},verbose:{type:`boolean`,default:!1},help:{type:`boolean`,shortFlag:`h`},version:{type:`boolean`,shortFlag:`v`}}}),{input:Q,flags:$}=Z;$.help?Z.showHelp(0):$.version?Z.showVersion():(E.enableDebug($.verbose),E.debug(`project dir:`,Q.join()),E.debug(`cli options:`,$),R(Object.assign({dir:Q[0]},$)));export{};
|
package/package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tomjs/create-app",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
5
|
"description": "create tomjs web app",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "Tom Gao",
|
|
8
|
+
"email": "tom@tomgao.cc"
|
|
9
|
+
},
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/tomjs/create-app.git"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public",
|
|
17
|
+
"registry": "https://registry.npmjs.org"
|
|
18
|
+
},
|
|
6
19
|
"keywords": [
|
|
7
20
|
"tomjs",
|
|
8
21
|
"front-end",
|
|
@@ -21,73 +34,57 @@
|
|
|
21
34
|
"web",
|
|
22
35
|
"node"
|
|
23
36
|
],
|
|
24
|
-
"author": {
|
|
25
|
-
"name": "Tom Gao",
|
|
26
|
-
"email": "tom@tomgao.cc"
|
|
27
|
-
},
|
|
28
|
-
"license": "MIT",
|
|
29
37
|
"bin": {
|
|
30
38
|
"create-app": "dist/index.js"
|
|
31
39
|
},
|
|
32
40
|
"files": [
|
|
33
41
|
"dist",
|
|
34
|
-
"templates
|
|
42
|
+
"templates",
|
|
43
|
+
"!templates/*/node_modules/.bin/*"
|
|
35
44
|
],
|
|
36
45
|
"engines": {
|
|
37
46
|
"node": ">=18"
|
|
38
47
|
},
|
|
39
|
-
"repository": {
|
|
40
|
-
"type": "git",
|
|
41
|
-
"url": "git+https://github.com/tomjs/create-app.git"
|
|
42
|
-
},
|
|
43
|
-
"publishConfig": {
|
|
44
|
-
"access": "public",
|
|
45
|
-
"registry": "https://registry.npmjs.org"
|
|
46
|
-
},
|
|
47
48
|
"dependencies": {
|
|
48
|
-
"@
|
|
49
|
+
"@clack/prompts": "^0.11.0",
|
|
50
|
+
"@tomjs/logger": "^1.4.0",
|
|
49
51
|
"@tomjs/node": "^2.2.3",
|
|
50
|
-
"chalk": "^5.
|
|
51
|
-
"dayjs": "^1.11.
|
|
52
|
-
"execa": "^9.
|
|
53
|
-
"inquirer": "^10.1.8",
|
|
52
|
+
"chalk": "^5.6.2",
|
|
53
|
+
"dayjs": "^1.11.19",
|
|
54
|
+
"execa": "^9.6.0",
|
|
54
55
|
"lodash-es": "^4.17.21",
|
|
55
|
-
"meow": "^
|
|
56
|
+
"meow": "^14.0.0",
|
|
57
|
+
"tinyglobby": "^0.2.15"
|
|
56
58
|
},
|
|
57
59
|
"devDependencies": {
|
|
58
|
-
"@
|
|
59
|
-
"@
|
|
60
|
-
"@tomjs/
|
|
61
|
-
"@tomjs/
|
|
62
|
-
"@tomjs/stylelint": "^
|
|
63
|
-
"@tomjs/tsconfig": "^1.
|
|
64
|
-
"@
|
|
60
|
+
"@antfu/eslint-config": "^6.2.0",
|
|
61
|
+
"@commitlint/cli": "^20.1.0",
|
|
62
|
+
"@tomjs/commitlint": "^5.0.0",
|
|
63
|
+
"@tomjs/eslint": "^6.0.0",
|
|
64
|
+
"@tomjs/stylelint": "^7.0.0",
|
|
65
|
+
"@tomjs/tsconfig": "^2.1.0",
|
|
66
|
+
"@tsconfig/node20": "^20.1.8",
|
|
65
67
|
"@types/lodash-es": "^4.17.12",
|
|
66
|
-
"@types/node": "^
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"tsup": "^8.2.4",
|
|
80
|
-
"tsx": "^4.19.0",
|
|
81
|
-
"type-fest": "^4.26.0",
|
|
82
|
-
"typescript": "~5.5.4"
|
|
68
|
+
"@types/node": "^20.19.25",
|
|
69
|
+
"dotenv": "^17.2.3",
|
|
70
|
+
"eslint": "^9.39.1",
|
|
71
|
+
"lint-staged": "^16.2.7",
|
|
72
|
+
"npm-run-all2": "^8.0.4",
|
|
73
|
+
"publint": "^0.3.15",
|
|
74
|
+
"rimraf": "^6.1.2",
|
|
75
|
+
"simple-git-hooks": "^2.13.1",
|
|
76
|
+
"stylelint": "^16.26.1",
|
|
77
|
+
"tsdown": "~0.15.12",
|
|
78
|
+
"tsx": "^4.20.6",
|
|
79
|
+
"type-fest": "^5.2.0",
|
|
80
|
+
"typescript": "~5.9.3"
|
|
83
81
|
},
|
|
84
82
|
"scripts": {
|
|
85
|
-
"dev": "
|
|
83
|
+
"dev": "tsdown --watch",
|
|
86
84
|
"debug": "tsx -r dotenv/config src/index.ts",
|
|
87
|
-
"build": "
|
|
88
|
-
"lint": "run-s lint:
|
|
89
|
-
"lint:eslint": "eslint
|
|
90
|
-
"lint:stylelint": "stylelint \"templates/**/*.{css,scss,
|
|
91
|
-
"lint:prettier": "prettier --write ."
|
|
85
|
+
"build": "tsdown --minify",
|
|
86
|
+
"lint": "run-s lint:stylelint lint:eslint",
|
|
87
|
+
"lint:eslint": "eslint --fix",
|
|
88
|
+
"lint:stylelint": "stylelint \"templates/**/*.{css,scss,vue,html}\" --fix --cache"
|
|
92
89
|
}
|
|
93
90
|
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Disable the default formatter, use eslint instead
|
|
3
|
+
"prettier.enable": false,
|
|
4
|
+
"editor.formatOnSave": false,
|
|
5
|
+
|
|
6
|
+
// Auto fix
|
|
7
|
+
"editor.codeActionsOnSave": {
|
|
8
|
+
"source.fixAll.eslint": "explicit",
|
|
9
|
+
"source.organizeImports": "never"
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
// Silent the stylistic rules in your IDE, but still auto fix them
|
|
13
|
+
"eslint.rules.customizations": [
|
|
14
|
+
{ "rule": "style/*", "severity": "off", "fixable": true },
|
|
15
|
+
{ "rule": "format/*", "severity": "off", "fixable": true },
|
|
16
|
+
{ "rule": "*-indent", "severity": "off", "fixable": true },
|
|
17
|
+
{ "rule": "*-spacing", "severity": "off", "fixable": true },
|
|
18
|
+
{ "rule": "*-spaces", "severity": "off", "fixable": true },
|
|
19
|
+
{ "rule": "*-order", "severity": "off", "fixable": true },
|
|
20
|
+
{ "rule": "*-dangle", "severity": "off", "fixable": true },
|
|
21
|
+
{ "rule": "*-newline", "severity": "off", "fixable": true },
|
|
22
|
+
{ "rule": "*quotes", "severity": "off", "fixable": true },
|
|
23
|
+
{ "rule": "*semi", "severity": "off", "fixable": true }
|
|
24
|
+
],
|
|
25
|
+
|
|
26
|
+
// Enable eslint for all supported languages
|
|
27
|
+
"eslint.validate": [
|
|
28
|
+
"javascript",
|
|
29
|
+
"javascriptreact",
|
|
30
|
+
"typescript",
|
|
31
|
+
"typescriptreact",
|
|
32
|
+
"vue",
|
|
33
|
+
"html",
|
|
34
|
+
"markdown",
|
|
35
|
+
"json",
|
|
36
|
+
"jsonc",
|
|
37
|
+
"yaml",
|
|
38
|
+
"toml",
|
|
39
|
+
"xml",
|
|
40
|
+
"gql",
|
|
41
|
+
"graphql",
|
|
42
|
+
"astro",
|
|
43
|
+
"svelte",
|
|
44
|
+
"css",
|
|
45
|
+
"less",
|
|
46
|
+
"scss",
|
|
47
|
+
"pcss",
|
|
48
|
+
"postcss"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
@@ -32,7 +32,7 @@ web_modules
|
|
|
32
32
|
tsconfig.tsbuildinfo
|
|
33
33
|
|
|
34
34
|
# environment
|
|
35
|
-
|
|
35
|
+
.env
|
|
36
36
|
|
|
37
37
|
# macOS
|
|
38
38
|
.DS_Store
|
|
@@ -46,7 +46,6 @@ tsconfig.tsbuildinfo
|
|
|
46
46
|
*.tar.*
|
|
47
47
|
*.tgz
|
|
48
48
|
*.zip
|
|
49
|
-
*.vsix
|
|
50
49
|
|
|
51
50
|
# IDEA
|
|
52
51
|
.idea
|
|
@@ -57,4 +56,3 @@ tsconfig.tsbuildinfo
|
|
|
57
56
|
# build output
|
|
58
57
|
build
|
|
59
58
|
dist
|
|
60
|
-
release
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
"packageManager": "pnpm@10.24.0",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"lint": "eslint --fix",
|
|
8
|
+
"prepare": "simple-git-hooks"
|
|
9
|
+
},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"@antfu/eslint-config": "^6.2.0",
|
|
12
|
+
"@commitlint/cli": "^20.1.0",
|
|
13
|
+
"@tomjs/commitlint": "^5.0.0",
|
|
14
|
+
"@tomjs/eslint": "^6.0.0",
|
|
15
|
+
"@tomjs/tsconfig": "^2.1.0",
|
|
16
|
+
"@types/node": "^20.19.25",
|
|
17
|
+
"eslint": "^9.39.1",
|
|
18
|
+
"lint-staged": "^16.2.7",
|
|
19
|
+
"npm-run-all2": "^8.0.4",
|
|
20
|
+
"simple-git-hooks": "^2.13.1",
|
|
21
|
+
"tsx": "^4.20.6",
|
|
22
|
+
"typescript": "~5.9.3"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) {{dateYear}}-PRESENT {{gitUserName}}
|
|
3
|
+
Copyright (c) {{dateYear}}-PRESENT {{gitUserName}}
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# {{pkgName}}
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/{{pkgName}})   [](https://www.jsdocs.io/package/{{pkgName}})
|
|
4
|
+
|
|
5
|
+
**English** | [中文](./README.zh_CN.md)
|
|
6
|
+
|
|
7
|
+
> Basic template
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# pnpm
|
|
13
|
+
pnpm add -D {{pkgName}}
|
|
14
|
+
|
|
15
|
+
# yarn
|
|
16
|
+
yarn add -D {{pkgName}}
|
|
17
|
+
|
|
18
|
+
# npm
|
|
19
|
+
npm add -D {{pkgName}}
|
|
20
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# {{pkgName}}
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/{{pkgName}})   [](https://www.jsdocs.io/package/{{pkgName}})
|
|
4
|
+
|
|
5
|
+
[English](./README.md) | **中文**
|
|
6
|
+
|
|
7
|
+
> 基础模板
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# pnpm
|
|
13
|
+
pnpm add -D {{pkgName}}
|
|
14
|
+
|
|
15
|
+
# yarn
|
|
16
|
+
yarn add -D {{pkgName}}
|
|
17
|
+
|
|
18
|
+
# npm
|
|
19
|
+
npm add -D {{pkgName}}
|
|
20
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scripts": {
|
|
3
|
+
"lint": "run-s lint:stylelint lint:eslint",
|
|
4
|
+
"lint:stylelint": "stylelint \"src/**/*.{css,scss,vue}\" --fix",
|
|
5
|
+
"lint:eslint": "eslint --fix"
|
|
6
|
+
},
|
|
7
|
+
"devDependencies": {
|
|
8
|
+
"@tomjs/stylelint": "^7.0.0",
|
|
9
|
+
"sass": "1.94.2",
|
|
10
|
+
"stylelint": "^16.26.1"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"version": "0.2.0",
|
|
6
6
|
"configurations": [
|
|
7
7
|
{
|
|
8
|
-
"name": "Debug
|
|
8
|
+
"name": "Debug Electron",
|
|
9
9
|
"type": "node",
|
|
10
10
|
"request": "launch",
|
|
11
11
|
"cwd": "${workspaceFolder}",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
|
|
15
15
|
},
|
|
16
16
|
"args": [
|
|
17
|
-
"."
|
|
17
|
+
"."
|
|
18
18
|
],
|
|
19
19
|
"outFiles": [
|
|
20
20
|
"${workspaceFolder}/**/*.js",
|
|
@@ -22,7 +22,27 @@
|
|
|
22
22
|
"${workspaceFolder}/**/*.mjs",
|
|
23
23
|
"!**/node_modules/**"
|
|
24
24
|
],
|
|
25
|
-
"preLaunchTask": "
|
|
25
|
+
"preLaunchTask": "npm:dev"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "Debug Web",
|
|
29
|
+
"type": "node",
|
|
30
|
+
"request": "launch",
|
|
31
|
+
"cwd": "${workspaceFolder}",
|
|
32
|
+
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
|
|
33
|
+
"windows": {
|
|
34
|
+
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
|
|
35
|
+
},
|
|
36
|
+
"args": [
|
|
37
|
+
"."
|
|
38
|
+
],
|
|
39
|
+
"outFiles": [
|
|
40
|
+
"${workspaceFolder}/**/*.js",
|
|
41
|
+
"${workspaceFolder}/**/*.cjs",
|
|
42
|
+
"${workspaceFolder}/**/*.mjs",
|
|
43
|
+
"!**/node_modules/**"
|
|
44
|
+
],
|
|
45
|
+
"preLaunchTask": "npm:debug"
|
|
26
46
|
}
|
|
27
47
|
]
|
|
28
48
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
|
3
|
+
// for the documentation about the tasks.json format
|
|
4
|
+
"version": "2.0.0",
|
|
5
|
+
"tasks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "npm",
|
|
8
|
+
"script": "dev",
|
|
9
|
+
"label": "npm:dev",
|
|
10
|
+
"problemMatcher": {
|
|
11
|
+
"owner": "typescript",
|
|
12
|
+
"fileLocation": "relative",
|
|
13
|
+
"pattern": {
|
|
14
|
+
"regexp": "^([a-zA-Z]\\:\\/?([\\w\\-]\\/?)+\\.\\w+):(\\d+):(\\d+): (ERROR|WARNING)\\: (.*)$",
|
|
15
|
+
"file": 1,
|
|
16
|
+
"line": 3,
|
|
17
|
+
"column": 4,
|
|
18
|
+
"code": 5,
|
|
19
|
+
"message": 6
|
|
20
|
+
},
|
|
21
|
+
"background": {
|
|
22
|
+
"activeOnStart": true,
|
|
23
|
+
"beginsPattern": "^.*VITE v.* ready in \\d* ms.*$",
|
|
24
|
+
"endsPattern": "^.*\\[tomjs:electron\\] startup electron*$"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"isBackground": true,
|
|
28
|
+
"presentation": {
|
|
29
|
+
"reveal": "never"
|
|
30
|
+
},
|
|
31
|
+
"group": {
|
|
32
|
+
"kind": "build",
|
|
33
|
+
"isDefault": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"type": "npm",
|
|
38
|
+
"script": "debug",
|
|
39
|
+
"label": "npm:debug",
|
|
40
|
+
"problemMatcher": {
|
|
41
|
+
"owner": "typescript",
|
|
42
|
+
"fileLocation": "relative",
|
|
43
|
+
"pattern": {
|
|
44
|
+
"regexp": "^([a-zA-Z]\\:\\/?([\\w\\-]\\/?)+\\.\\w+):(\\d+):(\\d+): (ERROR|WARNING)\\: (.*)$",
|
|
45
|
+
"file": 1,
|
|
46
|
+
"line": 3,
|
|
47
|
+
"column": 4,
|
|
48
|
+
"code": 5,
|
|
49
|
+
"message": 6
|
|
50
|
+
},
|
|
51
|
+
"background": {
|
|
52
|
+
"activeOnStart": true,
|
|
53
|
+
"beginsPattern": "^.*VITE v.* ready in \\d* ms.*$",
|
|
54
|
+
"endsPattern": "^.*\\[tomjs:electron\\] startup electron*$"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"isBackground": true,
|
|
58
|
+
"presentation": {
|
|
59
|
+
"reveal": "never"
|
|
60
|
+
},
|
|
61
|
+
"group": {
|
|
62
|
+
"kind": "build",
|
|
63
|
+
"isDefault": true
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|