无法将选项传递给command.js中的命令

Cannot pass an option to a command in commander.js

本文关键字:js command 命令 选项      更新时间:2023-11-03

我正试图将一个选项传递给我用commander.js…创建的命令

program
 .command('init [options]')
 .description('scaffold the project')
 .option('-b, --build', 'add "build" folder with subfolders')
 .action(function(){
   if(program.build) {
    mkdirp("build/")
  }
 });
program.parse(process.argv);

其中,如果-b标志传递给init,则npm mkdirp模块将创建一个"构建"目录。遗憾的是,我无法让它工作。。。知道吗?

将program.build更改为this.build在传递给.action()的函数内部

program
 .command('init [options]')
 .description('scaffold the project')
 .option('-b, --build', 'add "build" folder with subfolders')
 .action(function(){
   if(this.build) {
    mkdirp("build/")
  }
 });
program.parse(process.argv);