commanderとは
- コマンドラインツール用に引数をパースするライブラリ
- rubyのcommanderをインスパイアして作られている
- https://www.npmjs.com/package/commander
- https://github.com/tj/commander.js
インストール
npm i commander
簡単な使い方
version
プログラムのバージョンを設定
- -hでバージョンが表示される
option
オプションの項目を設定
引数の値は格納される変数名にもなる
- 省略引数(-p)
- 引数(--purpos)
- 説明
- デフォルト値
- パース関数
- option(省略引数,引数,説明,[デフォルト値],[パース関数])
parse
対象となるオプション引数を指定する
- 通常はprocess.argvを指定
example
const program = require('commander');
program
.version('0.0.1')
.option('-p, --pen', 'Add pen')
.option('-a, --apple', 'Add apple')
.option('-P, --pineapple', 'Add pineapple')
.option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
.parse(process.argv);
const main = (program) => {
if(program.pen){
console.log("pen")
}
if(program.apple){
console.log("apple")
}
if(program.pineapple){
console.log("pineapple")
}
if(program.pen && program.apple){
console.log("applepen")
}
if(program.pen && program.apple && program.pineapple){
console.log("penpineapple applepen")
}
}
main(program)
optionの使い方
パターン | 値 | 説明 |
---|---|---|
option('-p, --pen', 'i have a pen') | bool | true of false |
option('-x, --pen <n>', 'Add number of pen') | String | 引数に<>を指定すると引数を一つ取ることを強制する。 |
option('-x, --pen <n>', 'Add number of pen', parseInt) | Number | 引数に<>を指定すると引数を一つ取ることを強制する。4番目の引数にパーサーを入れることで数値型として前処理させる |
option('-x, --pen [n]', 'Add number of pen') | String | 引数に[]を指定すると引数として値を取れる。値はオプションで存在しなければtrueが入る |
option('-x, --pen <items>', 'Add items', (items)=>items.split(',')) | Array | 複数の値を扱う場合はデリミタを使いそれをパースする関数をセットする |
option('-p, --pen <n>', 'Add pen', '1') | String | デフォルト値のセット |
option('-p, --pen <n>', 'Add pen', '1', parseInt) | Number | デフォルト値とパーサーのセット |