javascript - 无法将选项传递给 Commander.js 中的命令

标签 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”目录。可悲的是,我无法让它工作......有什么想法吗?

最佳答案

在传递给.action()的函数中将program.build更改为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);

关于javascript - 无法将选项传递给 Commander.js 中的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508061/

相关文章:

Javascript:四舍五入到下一个 5 的倍数

r - 从源安装 Shiny 服务器时找不到模块 '../package'

node.js - docker -/bin/sh : nodemon: not found

node.js - 安装 Node.js 后,“npm”不被识别为内部或外部命令、可操作程序或批处理文件 - Windows

angular - ag-grid v 22.1.1 升级后 ng build --prod 失败

javascript - 使用带有类名的参数添加 JQuery 验证插件自定义方法

javascript - 如何从 CMD 命令行启动 Node.js 应用程序,并从另一个 .Net core 3.0 应用程序调用它?

javascript - Promise/A+ with chain then() 回调用例?

javascript - 如何使用 express-validator 排除其他属性?

node.js - 运行 npm link 时跳过 npm install