ユーザーにオプションを提供することは、どんなアプリケーションでも重要な機能であり、Commander.jsはそれを簡単にします。あなたのお気に入りのJavaScriptコマンドラインビルダーは何ですか?
JavaScriptはウェブ用に開発された言語ですが、その有用性はインターネットをはるかに超えています。Node.jsやElectronのようなプロジェクトのおかげで、JavaScriptは汎用のスクリプト言語であり、ブラウザのコンポーネントでもあります。コマンドラインインターフェイスを構築するために特別に設計されたJavaScriptライブラリもあります。そう、ターミナルでJavaScriptを実行できるのです。
さて、ターミナルにコマンドを入力するとき、一般に、コマンドの実行方法を変更するために使用できる あります。これは 定義されている便利な規約なので、プログラマーとしては、これらのオプションを検出して解析する方法を知っておくと便利です。JavaScriptからこの機能を得るには、コマンドラインインターフェイスの構築を簡単にするために設計されたライブラリを使うのが便利です。私のお気に入りは 、シンプルで柔軟、そして直感的です。
ノードのインストール
Commander.jsライブラリを使用するには、Node.jsがインストールされている必要があります。Linuxでは、パッケージマネージャを使用してNodeをインストールすることができます:
$ sudo dnf install nodejs
WindowsとmacOSでは、 nodejs.orgのウェブサイトからインストーラーをダウンロードできます。
Commanderをインストール.js
Commander.jsをインストールするには、npmコマンドを使用します:
$ npm install commander
JavaScriptコードへのライブラリの追加
JavaScriptでは、requireキーワードを使ってコードにライブラリをインクルードすることができます。example.jsというファイルを作成し、お気に入りのテキストエディタで開きます。Commander.jsライブラリをインクルードするために、先頭に次の行を追加します:
const { program } = require('commander');
JavaScriptの解析オプション
Commander.jsライブラリでは、短いオプションと長いオプションの両方を定義することができ、各オプションの目的を明確にするための便利なメッセージも用意されています。
program.description('A sample application to parse options').option('-a, --alpha', 'Alpha').option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');
最初のオプションは--alphaと呼んでいますが、ブーリアン・スイッチです。引数はとりません。2番目のオプションは--betaと呼びますが、パラメータを受け付け、何も与えなければデフォルト値も指定します。
コマンドラインデータへのアクセス
有効なオプションを定義すると、長いオプション名を使ってその値を参照することができます:
program.parse();const options = program.opts();console.log('Options detected:');if (options.alpha) console.log('alpha');const beta = !options.beta ? 'no' : options.beta;console.log('beta is: %s', beta);
アプリケーションの実行
まずnodeコマンドをオプションなしで実行してみてください:
$ node ./example.jsOptions detected:beta is: Foo
ユーザーが上書きしない場合、デフォルトのベータ値が使用されます。
もう一度、今度はオプションを使って実行してください:
$ node ./example.js --beta hello --alphaOptions detected:beta is: hello
今回、テストスクリプトは--alphaオプションと、ユーザーが指定した--betaオプションの値を正常に検出しました。
オプションの解析
const { program } = require('commander');program.description('A sample application to parse options').option('-a, --alpha', 'Alpha').option('-b, --beta <VALUE>', 'Specify a VALUE', 'Foo');program.parse();const options = program.opts();console.log('Options detected:');console.log(typeof options);if (options.alpha) console.log(' * alpha');const beta = !options.beta ? 'no' : options.beta;console.log(' * beta is: %s', beta);
このプロジェクトの 、さらに多くの例があります。
ユーザーのためのオプションを含めることは、どんなアプリケーションにとっても重要な機能ですが、Commander.jsはそれを簡単に実現します。Commander.js以外にもライブラリはありますが、私はこのライブラリが素早く使いやすいと感じています。あなたのお気に入りのJavaScriptコマンドライン・ビルダーは何ですか?





