gxm-build-cli
Version:
一个mini版的脚手架
64 lines (48 loc) • 1.39 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) {
console.log(name, options);
// 获取当前工作目录
const cwd = process.cwd()
// 要创建的项目目录
const targetDir = path.join(cwd, name)
if(fs.existsSync(targetDir)) {
// 强制删除
if(options.force) {
await fs.remove(targetDir)
} else {
// 通过inquirer:询问用户是否确定要覆盖 or 取消
const {action} = await inquirer.createPromptModule([
{
name: 'action',
type: 'list',
message: '目录已经存在',
choices: [
{
name: '是否覆盖',
value: 'overwrite'
},
{
name: '取消',
value: false
}
]
}
])
if(!action) {
return
} else {
// 删除文件夹
await fs.remove(targetDir)
}
}
}
const args = require('./ask');
// 通过inquirer,让用户输入的项目内容:作者和描述
const ask = await inquirer.prompt(args);
// 创建项目
const generator = new Generator(name, targetDir, ask);
generator.create();
}