26

ノードとノード コマンダーを使用してスクリプトを作成したいのですが、引数の値を取得しようとすると、値自体ではなく値 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

この引数の値を取得するにはどうすればよいですか?

4

3 に答える 3

34

ドキュメントはあまり明確ではなく、これを例で示しているだけですが、使用した構文 ( )'-s, --src'はブール値用です。

文字列を取得したい場合は、次のように言う必要があります。'-s, --src <item>'

于 2015-02-22T20:10:44.863 に答える
11

オプションが入力を受け取ることを指定していません。オプション定義に<data>or (オプションの場合)を含めることで、これを行うことができます。[data]

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

于 2015-02-22T20:15:24.710 に答える
8

オプションが引数を取り、単なるフラグではないことを指定する必要があります

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

引数が必須の場合は で指定し<>ます。オプションの場合は、[].

于 2015-02-22T20:11:59.910 に答える