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

时间:2015-02-13 20:18:08

标签: javascript node.js npm

我正在尝试将选项传递给我使用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模块会创建一个“build”目录。可悲的是,我无法让它工作......任何想法?

1 个答案:

答案 0 :(得分:1)

将program.build更改为传递给.action()

的函数内的this.build
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);