それなりブログ
とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など
[Node.js] コマンド引数パーサーの比較
2014年9月27日 土曜日
いわゆる getopts、argparse 的なことをしてくれる以下のモジュールたちをざっと使ってみて:
commander
nopt
nomnom
minimist
比較というか、雑な感想を述べてみます。
commander
- help のドキュメントを自動生成してくれる
- サブコマンドの設定ができる
- 中で子プロセスで起動するようになっている
- original_command-sub_command.js のファイル名で別に設置する必要がある
- ぶっちゃけ、余計なお世話としか思えない
- 設定は commander のモジュールに対して行うので、副作用がある
- それどころか展開した結果も何故かモジュール以下に展開する。ウワァァン、キモイヨー!
- 要件がシンプルなら便利
- サブコマンドの設定ができる
- 中で子プロセスで起動するようになっている
- original_command-sub_command.js のファイル名で別に設置する必要がある
- ぶっちゃけ、余計なお世話としか思えない
- 設定は commander のモジュールに対して行うので、副作用がある
- それどころか展開した結果も何故かモジュール以下に展開する。ウワァァン、キモイヨー!
- 要件がシンプルなら便利
nopt
- 複雑なオプション設定に対応できる
- 特定書式で値を解釈し、Array や Date として展開できたり
- 同じオプションを複数回指定して配列で取得したり
- しかし、デフォルト値の設定ができないっぽい?
- 不要に複雑でオレオレな感じがあるので、自分は好きじゃない
- 特定書式で値を解釈し、Array や Date として展開できたり
- 同じオプションを複数回指定して配列で取得したり
- しかし、デフォルト値の設定ができないっぽい?
- 不要に複雑でオレオレな感じがあるので、自分は好きじゃない
nomnom
- サブコマンドの設定ができる、commander より素直で断然良い
- モジュールに対して副作用がある
- commander に近い、そしてそれより良さそうな気がする
- 他の 3 者と比べると、全然マイナー
- モジュールに対して副作用がある
- commander に近い、そしてそれより良さそうな気がする
- 他の 3 者と比べると、全然マイナー
minimist
- 疎結合で単機能、引数/オプションの解析だけを行ってくれる
- -f などの別名設定、デフォルト値の設定、– の設定、など基本的な点は抑えてくれている
- getopts の強化が欲しいなら、これが最も良いと思う
- 一番好き
- 検証コード
- -f などの別名設定、デフォルト値の設定、– の設定、など基本的な点は抑えてくれている
- getopts の強化が欲しいなら、これが最も良いと思う
- 一番好き
- 検証コード
オマケ: optimist
もう非推奨なので、minimist を使ってくださいとのこと
コメントを残す