1.获取命令行:yargs-parser
args[0] 创建的目录名称
const yParser = require('yargs-parser');
// 获取命令行参数,从下标2开始
const args = yParser(process.argv.slice(2));
2.命令行交互:inquirer
const run = async (config) => {
// node子进程emit
process.send && process.send({ type: 'prompt' });
process.emit('message', { type: 'prompt' });
let { type } = config;
if (!type) {
const answers = await inquirer.prompt([
{
name: 'type',
message: 'Select the boilerplate type',
type: 'list',
choices: generators,
},
]);
type = answers.type;
}
try {
return runGenerator(`./generators/${type}`, config);
} catch (e) {
console.error(chalk.red('> Generate failed'), e);
process.exit(1);
}
};