如何在单独的文件中访问命令选项?

时间:2016-01-28 11:03:42

标签: node.js module command-line-interface global node-commander

我正在使用commander在项目的index.js文件中为我的全局节点模块指定一些命令和选项(如example所示)。

我知道我可以使用以下代码轻松检查是否使用了命令:

if (program.peppers) {
  console.log('-peppers was used')
}

但是如何在其他文件中检查这些属性?我已经尝试导出program并在其他文件中要求它,但它似乎不起作用。

假设我想检查一个选项是否用在与我定义的文件不同的文件中。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以将解析后的程序传递给需要解析参数的文件/函数,也可以导出已解析的参数program实例

档案index.js

var program = require('./program');

if (program.peppers) {
  console.log('-peppers was used')
}

档案program.js

var program = require('commander');

program
  .version('0.0.1')
  .option('-p, --peppers', 'Add peppers')
  .option('-P, --pineapple', 'Add pineapple')
  .option('-b, --bbq-sauce', 'Add bbq sauce')
  .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
  .parse(process.argv);

module.exports = program;

从命令行调用index.js

> node index.js -p

产生输出

-peppers was used