sth-cli
Version:
stonehg vue cli
60 lines (55 loc) • 1.74 kB
JavaScript
/*
* @Description:
* @Autor: houyueke
* @Date: 2022-04-24 14:41:35
* @LastEditors: houyueke
* @LastEditTime: 2022-04-24 17:49:45
*/
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 {
//询问用户是否确定需要覆盖
let { action } = await inquirer.prompt([
{
name: 'action',
type: 'list',
message: '目标目录已存在,请选择:',
choices: [
{
name: '覆盖',
value: 'overwrite'
},
{
name: "取消",
value: false
}
]
}
])
if (!action) {
return
} else if (action === 'overwrite') {
//移除已存在的目录
await fs.remove(targetDir)
}
}
}
//创建目录
const generator = new Generator(name, targetDir)
//创建项目
generator.create()
}