それなりブログ

とあるWebエンジニアのそれなりのブログ、JavaScript/Node.js/Python/PHP/ゲーム作成 など

[Node.js] コマンド引数パーサーの比較

いわゆる getopts、argparse 的なことをしてくれる以下のモジュールたちをざっと使ってみて:

commander
nopt
nomnom
minimist

比較というか、雑な感想を述べてみます。

commander

- help のドキュメントを自動生成してくれる
- サブコマンドの設定ができる
 - 中で子プロセスで起動するようになっている
 - original_command-sub_command.js のファイル名で別に設置する必要がある
  - ぶっちゃけ、余計なお世話としか思えない
- 設定は commander のモジュールに対して行うので、副作用がある
 - それどころか展開した結果も何故かモジュール以下に展開する。ウワァァン、キモイヨー!
- 要件がシンプルなら便利

nopt

- 複雑なオプション設定に対応できる
 - 特定書式で値を解釈し、Array や Date として展開できたり
 - 同じオプションを複数回指定して配列で取得したり
- しかし、デフォルト値の設定ができないっぽい?
- 不要に複雑でオレオレな感じがあるので、自分は好きじゃない

nomnom

- サブコマンドの設定ができる、commander より素直で断然良い
- モジュールに対して副作用がある
- commander に近い、そしてそれより良さそうな気がする
- 他の 3 者と比べると、全然マイナー

minimist

- 疎結合で単機能、引数/オプションの解析だけを行ってくれる
- -f などの別名設定、デフォルト値の設定、– の設定、など基本的な点は抑えてくれている
- getopts の強化が欲しいなら、これが最も良いと思う
- 一番好き
- 検証コード

オマケ: optimist

もう非推奨なので、minimist を使ってくださいとのこと


コメントを残す

メールアドレスが公開されることはありません。

Categories