croot-cli
Version:
根网大数据平台前端脚手架
72 lines (70 loc) • 1.8 kB
JavaScript
const path = require("path");
const fs = require("fs-extra");
const inquirer = require("inquirer");
const Generator = require("./Generator");
module.exports = async function (name, options) {
const cwd = process.cwd();
// 需要创建的目录地址
const targetAir = path.join(cwd, name);
// 目录是否已经存在?
if (fs.existsSync(targetAir)) {
if (options.force) {
await fs.remove(targetAir);
} else {
// 是否要覆盖已经存在文件
let { action } = await inquirer.prompt([
{
name: "action",
type: "list",
message: "目录已存在,请选择是否覆盖:",
choices: [
{
name: "overwrite",
value: "overwrite",
},
{
name: "Cancel",
value: false,
},
],
},
]);
if (!action) {
return;
} else if (action === "overwrite") {
// 移除已存在的目录
console.log(`\r\nRemoving...`);
await fs.remove(targetAir);
}
}
}
let { action } = await inquirer.prompt([
{
name: "action",
type: "list",
message: "请选择项目模板:",
choices: [
{
name: "nuxt-vue模板(vue SSR服务端渲染)",
value: "nuxt",
},
{
name: "create-react-app模板(spa单页面)",
value: "react",
},
{
name: "vue-cli模板(spa单页面)",
value: "vue",
},
{
name: "vite-vue模板(spa单页面)",
value: "vite-vue",
},
],
},
]);
// 创建项目
const generator = new Generator(name, targetAir, action);
// 开始创建项目
generator.create();
};