custom_cmd
Version:
## 1.创建 npm 包,在其中创建命令
56 lines (48 loc) • 1.46 kB
JavaScript
const commander = require('commander')
const inquirer = require('inquirer')
const shell = require('shelljs')
let program = commander.createCommand()
program.version(require('./package.json').version)
const initAction = () => {
inquirer.prompt([{
type: 'input', // 提示项类型
message: '请输入包名:', // 提示项信息
name: 'name' // 提示标项识
}]).then((answers) => {
// 回车后的业务逻辑
console.log('* 开始创建...')
let pkgName = answers.name
shell.exec(`
mkdir ${pkgName} && \
cd ${pkgName} && \
echo '{
"name": "${pkgName}",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \\"Error: no test specified\\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}' > package.json && \
mkdir src && \
touch src/index.js && \
echo "console.log('hi!')" > src/index.js
`, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`)
return
}
// console.log(`${stdout}`)
// console.log(`${stderr}`)
console.log('* 创建成功')
});
})
}
program
.description('创建一个 NPM 初始包')//命令描述
.action(initAction)//操作
program.parse(process.argv)