节点js commander args返回true而不是值

20 javascript node.js node-commander

我想用节点和节点命令创建一个脚本,当我尝试获取我的args的值时,我得到值true而不是值本身.

例如,如果我在终端写这个:

node myfile.js -s somefile -d test

var program = require('commander');

program
  .version('0.0.1')
  .option('-s, --src', 'src csv file')
  .option('-d, --destination', 'destination csv file')
  .parse(process.argv);

console.log(program.src); // return true
console.log(program.destination); // return true
Run Code Online (Sandbox Code Playgroud)

我如何获得这个args的价值?

Que*_*tin 27

文件是不是很清楚,只显示该实例,但你已经使用(语法'-s, --src')是布尔值.

如果你想要一个字符串,你需要这样说: '-s, --src <item>'


L0j*_*j1k 9

您没有指定选项接受输入.您可以通过在选项定义中包含<data>[data](如果可选)来执行此操作:

.option('-s, --src <src>', 'src csv file') .option('-d, --dest [dest]', 'destination csv file')


xve*_*ges 7

您需要指定选项采用参数,并且它们不仅仅是一个标志

program
  .version('0.0.1')
  .option('-s, --src <file>', 'src csv file')
  .option('-d, --destination <file>', 'destination csv file')
  .parse(process.argv);
Run Code Online (Sandbox Code Playgroud)

如果参数是必需的,则使用<>.如果是可选的,请使用[].