1.获取命令行:yargs-parser

args[0] 创建的目录名称

  1. const yParser = require('yargs-parser');
  2. // 获取命令行参数,从下标2开始
  3. const args = yParser(process.argv.slice(2));

2.命令行交互:inquirer

  1. const run = async (config) => {
  2. // node子进程emit
  3. process.send && process.send({ type: 'prompt' });
  4. process.emit('message', { type: 'prompt' });
  5. let { type } = config;
  6. if (!type) {
  7. const answers = await inquirer.prompt([
  8. {
  9. name: 'type',
  10. message: 'Select the boilerplate type',
  11. type: 'list',
  12. choices: generators,
  13. },
  14. ]);
  15. type = answers.type;
  16. }
  17. try {
  18. return runGenerator(`./generators/${type}`, config);
  19. } catch (e) {
  20. console.error(chalk.red('> Generate failed'), e);
  21. process.exit(1);
  22. }
  23. };