create-base-teek-theme
Version:
``` npm create base-teek-theme@latest my-first-blog ```
17 lines (14 loc) • 1.63 kB
JavaScript
import o from"path";import l from"process";import t from"fs-extra";import{fileURLToPath as h}from"url";var b=h(import.meta.url),c=o.dirname(b),r=l.argv.slice(2),j=r.filter(e=>e.startsWith("--")),m=r.filter(e=>!e.startsWith("--")),g=m[m.length-1]||"vitepress",n=j.includes("--bun");(r.includes("--help")||r.includes("-h"))&&(console.log(`
Usage:
create-base-teek-theme [project-name] [Options]
Options:
--bun Use bun instead of pnpm
--help Show this message
`),l.exit(0));console.log("\u{1F6A7} Creating vitepress-theme-base-teek project...");console.log();async function $(e){let u=o.join(c,"template");if(t.existsSync(e)){console.log(`\u274C The folder "${g}" already exists.`),console.log();return}try{await t.copy(u,e),await t.copy(o.join(c,"move/gitignore"),o.join(e,".gitignore")),await t.copy(o.join(c,"move/package"),o.join(e,"package.json"));let i=n?"bunfig.toml":"npmrc",f=n?"bunfig.toml":".npmrc";if(await t.copy(o.join(c,`move/${i}`),o.join(e,f)),n){let p=o.join(e,"package.json"),a=await t.readJSON(p);a.scripts.build=`NODE_ENV=production ${a.scripts.build}`,await t.writeJSON(p,a,{spaces:2})}console.log("\u{1F389} \u9879\u76EE\u521B\u5EFA\u6210\u529F!"),console.log(`\u{1F4C1} \u9879\u76EE\u8DEF\u5F84: ${e}`),console.log();let s=n?"bun":"pnpm";console.log(`\u{1F449} \u4E0B\u4E00\u6B65\u64CD\u4F5C:
\u2460 cd ${o.parse(e).name}
\u2461 ${s} install
\u2462 ${s} run ${n?"--bun ":""}dev
\u2463 ${s} run ${n?"--bun ":""}build
\u2464 ${s} run ${n?"--bun ":""}preview
`)}catch(i){console.error("\u274C \u9879\u76EE\u521B\u5EFA\u5931\u8D25:",i)}}$(o.join(l.cwd(),g));