Node 开发脚手架工具
初始化node项目
$ npm init -y
$ npm i ejs inquirer
配置脚手架命令入口文件
# package.json
"bin":"cli.js",
const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')
const ejs = require('ejs')
inquirer
.prompt([
{
type: 'input',
name: 'name',
message: 'Project name?',
},
])
.then((ans) => {
const tmplDir = path.join(__dirname, 'templates')
const destDir = process.cwd()
fs.readdir(tmplDir, (err, files) => {
if (err) throw err
files.forEach((file) => {
ejs.renderFile(path.join(tmplDir, file), ans, (err, result) => {
if (err) throw err
fs.writeFileSync(path.join(destDir, file), result)
})
})
})
})
本地测试
$ npm link
$ mycli