確かに以前は組み込みの process.agrv が処理に使用されていましたが、これは機能しますが、使いにくいため、偉大なるマスター tj が完全に優れたものを作成しました。
1. インストール
npm インストール コマンダー
2. オプション分析
コマンダーのオプションは .option() メソッドで定義されており、オプションのドキュメントとしても機能します。以下の例では、process.argv からの引数とオプションを解析し、残りの引数は、program.args 配列として残します。オプション。
#!/usr/bin/env ノード
/**
* モジュールの依存関係。
*/
var プログラム = require('commander');
プログラム
.version('0.0.1')
.option('-p, --peppers', 'ピーマンを追加')
.option('-P, --pineapple', 'パイナップルを追加')
.option('-b, --bbq', 'バーベキューソースを追加')
.option('-c, --cheese [type]', '指定した種類のチーズを追加 [marble]', 'marble')
.parse(process.argv);
console.log('次の条件でピザを注文しました:');
if (program.peppers) console.log(' - ペッパーズ');
if (program.pineapple) console.log(' - pineapple');
if (program.bbq) console.log(' - bbq');
console.log(' - %s チーズ',program.cheese);
短いフラグは単一の引数として渡すことができます。たとえば、-abc は -a -b -c と同等です。「–template-engine」などの複数の単語のオプションはキャメルケースになり、program.templateEngine などになります。
3. ヘルプ情報を自動生成します
$ ./examples/pizza --help
用途:ピザ【オプション】
オプション:
-V、--version バージョン番号を出力します
-p, --peppers ピーマンを追加します
-P, --pineapple パイナップルを追加します
-b, --bbq バーベキューソースを追加します
-c, --cheese 指定した種類のチーズ [マーブル] を追加します
-h、--help 使用法情報を出力
もちろん、手動で生成することもできます:
#!/usr/bin/env ノード
/**
* モジュールの依存関係。
*/
var プログラム = require('../');
関数リスト(val) {
戻り値 val.split(',').map(数値);
}
プログラム
.version('0.0.1')
.option('-f, --foo', 'foo を有効にする')
.option('-b, --bar', '一部のバーを有効にする')
.option('-B, --baz', '一部の baz を有効にする');
// .parse() の前になければなりません。 because
// ノードの Emit() は即時です
program.on('--help', function(){
console.log(' 例:');
console.log('');
console.log(' $custom-help --help');
console.log(' $ カスタムヘルプ -h');
console.log('');
});
Program.parse(process.argv);
console.log('stuff');
4. 完全な例を挙げてください
関数範囲(val) {
return val.split('..').map(数値);
}
関数リスト(val) {
return val.split(',');
}
関数collect(val, memo) {
memo.push(val);
メモを返す;
}
関数増加Verbosity(v, total) {
合計 1 を返します;
}
プログラム
.version('0.0.1')
.usage('[オプション] <ファイル ...>')
.option('-i, --integer
', '整数引数', parseInt)
.option('-f, --float ', 'float 引数', parseFloat)
.option('-r, --range ..', 'A range', range)
.option('-l, --list ', 'A list', list)
.option('-o, --optional [値]', 'オプションの値')
.option('-c, --collect [値]', '反復可能な値',collect, [])
.option('-v, --verbose', '増加できる値',増加Verbosity, 0)
.parse(process.argv);
console.log(' int: %j',program.integer);
console.log(' float: %j', Program.float);
console.log(' オプション: %j', Program.optional);
プログラム範囲 = プログラム範囲 || [];
console.log(' 範囲: %j..%j'、program.range[0]、program.range[1]);
console.log(' リスト: %j', Program.list);
console.log(' 収集: %j', Program.collect);
console.log(' 冗長性: %j',program.verbose);
console.log(' args: %j',program.args);