確かに、以前の処理では組み込みプロセスを使用しました。これは機能することができますが、作業は簡単ではないため、マスターTJは完全にハイエンドである「マイ神」を書きました。
1。インストール
コードコピーは次のとおりです。
NPMインストール司令官
2。オプション分析
司令官とのオプションは、.option()メソッドで定義され、オプションのドキュメントとしても機能します。以下の例は、Process.ArgvからのArgsとオプションを解析し、Optionsで消費されなかったArgs配列として残っているArgsを残します。
コードコピーは次のとおりです。
#!/usr/bin/envノード
/**
*モジュールの依存関係。
*/
var program = require( 'Commander');
プログラム
.version( '0.0.1')
.option( '-p、 - peppers'、 'peppers'))
.option( '-p、 - pineapple'、 'pineapple'))
.option( '-b、-bbq'、 'BBQソースを追加'))
.option( '-C、-cheese [type]'、 '指定されたタイプのチーズ[大理石]'、「大理石」を追加)
.Parse(process.Argv);
console.log( 'あなたは:')でピザを注文しました。
if(program.peppers)console.log( '-Peppers');
if(program.pineapple)console.log( ' - pineapple');
if(program.bbq)console.log( '-BBQ');
console.log( ' - %sチーズ'、プログラム。cheese);
たとえば、-ABCは-a -b -cに相当する場合、短いフラグを単一のargとして渡すことができます。 「テンプレートエンジン」などのマルチワードオプションはキャメルケースであり、プログラムになります。TemplateEngineなど。
3.ヘルプ情報を自動的に生成します
コードコピーは次のとおりです。
$ ./examples/pizza - help
使用法:ピザ[オプション]
オプション:
-v、-versionバージョン番号を出力します
-p、 - ペッパーはペッパーを追加します
-p、 - パイナップル追加パイナップルを追加します
-b、-bbqはバーベキューソースを追加します
-c、-cheese <pype>指定されたタイプのチーズ[大理石]を追加する
-H、 - ヘルプ出力使用情報
もちろん、手動で生成することもできます。
コードコピーは次のとおりです。
#!/usr/bin/envノード
/**
*モジュールの依存関係。
*/
var program = require( '../');
関数リスト(val){
return val.split( '、')。map(number);
}
プログラム
.version( '0.0.1')
.option( '-f、 - -foo'、 'foo'を有効にする ')
.option( '-b、 - -bar'、 'barを有効にする')
.option( '-b、 - baz'、 'baz'を有効にする ');
// .parse()以来
// nodeのemit()は即時です
プログラム( ' - help'、function(){
console.log( '例:');
console.log( '');
console.log( '$ custom-help - help');
console.log( '$ custom -help -h');
console.log( '');
});
program.parse(process.argv);
console.log( 'Stuff');
4.完全な例を挙げてください
コードコピーは次のとおりです。
関数範囲(val){
return val.split( '..')。map(number);
}
関数リスト(val){
return val.split( '、');
}
function collect(val、memo){
memo.push(val);
メモを返す;
}
関数の増加verbosity(v、合計){
合計 + 1を返します。
}
プログラム
.version( '0.0.1')
.usage( '[options] <file ...>')
.option( '-i、-integer <n>'、 '整数議論'、parseint)
.option( '-f、 - float <n>'、 'フロート引数'、parsefloat)
.option( '-r、 - range <a> .. <b>'、 'A Srange'、範囲)
.option( '-l、--list <iters>'、 'a list'、list)
.option( '-o、-optional [value]'、 'オプションの値')
.option( '-c、 - collect [value]'、 '繰り返し可能な値'、collect、[])
.option( '-v、-verbose'、 '増加する値、増加verbosity、0)
.Parse(process.Argv);
console.log( 'int:%j'、program.integer);
console.log( 'float:%j'、program.float);
console.log( 'optional:%j'、program.optional);
プログラム。range= program.range || [];
console.log( 'range:%j ..%j'、program.range [0]、program.range [1]);
console.log( 'list:%j'、program.list);
console.log( 'collect:%j'、program.collect);
console.log( 'verbosity:%j'、program.verbose);
console.log( 'args:%j'、program.args);