20

Node.jsを使用してCLIを実装したいので、現在commander.jsを調べています。

「ピザ」プログラムの例が示すように、名前付きパラメータの使用は簡単です。

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

これで、たとえば、次を使用してプログラムを呼び出すことができます。

$ app -p -b

しかし、名前のないパラメーターはどうでしょうか?を使用して呼び出したい場合はどうなりますか

$ app italian -p -b

?これはそれほど珍しいことではないと思います。したがって、cpコマンドにファイルを提供するために、名前付きパラメーターも使用する必要はありません。それはただ

$ cp source target

ではなく:

$ cp -s source -t target

commander.jsを使用してこれを実現するにはどうすればよいですか?

また、名前のないパラメーターが必要であることをcommander.jsに伝えるにはどうすればよいですか?たとえば、cpコマンドを見ると、ソースとターゲットが必要です。

4

2 に答える 2

7

名前のないパラメータはすべて を介して取得しますprogram.args。次の行を例に追加します

console.log(' args: %j', program.args);

アプリを実行すると-p -b -c gouda arg1 arg2

you ordered a pizza with:
- peppers
- bbq
- gouda cheese
args: ["arg1","arg2"]

次に、次のようなものを書くことができます

copy args[0] to args[1] // just to give an idea
于 2013-01-28T08:02:50.497 に答える