这是在使用过程中发现的一个问题,在网上没有找到解决方案,经过反复实验,终于定位到了问题所在,记录一下
定义的删除命令
program.command('del <name>')
.description('delete command')//描述
.alias('d <name>')//缩写
.action((name) => {
require('../command/delete')(name);
});
删除文件delete.js:
const promptList = [
{
type: 'list',
name: 'type',
message: '选择文件类型',
default: 'views',
choices: [
'views',
'component'
]
}
];
module.exports = (name) => {
inquirer.prompt(promptList).then((answers) => {
/*****
})
}
执行命令后发现该命令似乎被执行了两遍:
Terminal 打印:
? 选择文件类型 (Use arrow keys)
> views
component ? 选择文件类型 (Use arrow keys)
> views
component
问题分析:
开始以为是inquirer命令的问题,但是inquirer段代码被执行两遍,因此考虑是action被执行了两遍,所以怀疑是commander中命令的问题,最终发现是:
program.parse(process.argv);
该段代码被多次引用的问题,去除该段代码的多次引用就没问题了