JavaScript を使用したコマンドライン アプリケーションの構築

JavaScript を使用したコマンドライン アプリケーションの構築

序文:

JavaScriptは Web 用に開発された言語ですが、その有用性はインターネットをはるかに超えています。 JavaScriptNode.jsElectronなどのプロジェクトのおかげで、汎用スクリプト言語であると同時にブラウザ コンポーネントでもあります。コマンドライン インターフェイスの構築用に特別に設計されたJavaScriptライブラリがあります。はい、ターミナルでJavaScriptを実行できます。

さて、ターミナルにコマンドを入力すると、通常、スイッチまたはフラグとも呼ばれるオプションがあり、これを使用してコマンドの実行方法を変更することができます。これは POSIX 仕様で定義されている便利な規則なので、プログラマーとしてはこれらのオプションを検出して解析する方法を知っておくと役立ちます。 JavaScript からこの機能を利用するには、コマンドライン インターフェイスを簡単に構築できるように設計されたライブラリを使用すると便利です。私のお気に入りはCommander.jsです。シンプルで柔軟性があり、直感的です。

1. ノードをインストールする

Commander.jsライブラリを使用するには、 Node.jsがインストールされている必要があります。 Linux では、パッケージ マネージャーを使用してNodeをインストールできます。たとえば、 FedoraCentOSMageia 、その他のシステムでは次のようになります。

$ sudo dnf インストール nodejs


WindowsおよびmacOSでは、nodejs.org Web サイトからインストーラーをダウンロードできます。

2. Commander.jsをインストールする

Commander.js をインストールするには、npm コマンドを使用します。

$ npm インストール コマンダー

3. JavaScriptコードにライブラリを追加する

JavaScripでは、 requireキーワードを使用してコードにライブラリを組み込む (Python に慣れている場合はインポートする) ことができます。 example.jsというファイルを作成し、お気に入りのテキスト エディターで開きます。 Commander.jsライブラリを含めるには、先頭に次の行を追加します。

const { プログラム } = require('commander');


4. JavaScript でのオプション解析

オプションを解析するには、まずアプリケーションが受け入れることができる有効なオプションを定義する必要があります。 Commander.jsライブラリを使用すると、短いオプションと長いオプションの両方を定義でき、各オプションの目的を明確にする便利なメッセージも定義できます。

プログラム
  .description('オプションを解析するサンプルアプリケーション')
  .option('-a, --alpha', 'アルファ')
  .option('-b, --beta <VALUE>', 'VALUE を指定します', 'Foo');

最初のオプションは、 alpha (略して -a) と呼ばれ、ブールスイッチです。つまり、存在するか、存在しないかのどちらかです。パラメータは必要ありません。 2 番目のオプションは、 beta (略して -b) と呼ばれ、単一の引数を受け入れ、引数を指定しない場合はデフォルト値を指定します。

5. コマンドラインデータにアクセスする

有効なオプションを定義したら、長いオプション名を使用して値を参照できます。

プログラム.parse();

const オプション = program.opts();
console.log('検出されたオプション:');

options.alpha の場合、 console.log('alpha');
 
const beta = !options.beta ? 'no' : options.beta;
console.log('ベータ版は: %s', ベータ版);

6. アプリケーションを実行する

まずオプションなしで node コマンドで実行してみてください:

$ ノード ./example.js 
検出されたオプション: 
ベータ版は: Foo

ユーザーによる上書きがない場合は、 betaデフォルトが使用されます。

もう一度実行しますが、今回は次のオプションを使用します。

$ ノード ./example.js --beta hello --alpha
検出されたオプション: 
アルファ
ベータ版は: こんにちは

今回は、テスト スクリプトはオプションalphaと、ユーザーがbetaオプションに指定した値を正常に検出しました。

7. オプション分析

参考までに、完全なデモ コードを以下に示します。

const { プログラム } = require('commander');

プログラム
  .description('オプションを解析するサンプルアプリケーション')
  .option('-a, --alpha', 'アルファ')
    .option('-b, --beta <VALUE>', 'VALUE を指定します', 'Foo');

プログラム.parse();

const オプション = program.opts();
console.log('検出されたオプション:');

console.log(オプションの種類);

if (options.alpha) console.log(' * alpha');
const beta = !options.beta ? 'no' : options.beta;
console.log(' * ベータは: %s', ベータ);

プロジェクトの Git リポジトリにはさらに多くの例があります。

ユーザー オプションを含めることは、あらゆるアプリケーションにとって重要な機能であり、 Commander.js使用すると簡単に実現できます。 Commander.js以外にもライブラリはありますが、このライブラリは非常に便利で使いやすいと思います。あなたのお気に入りのJavaScriptコマンドラインビルダーは何ですか?

JavaScript を使用してコマンドライン アプリケーションを構築する方法については、これで終わりです。JavaScript を使用してコマンドライン アプリケーションを構築する方法に関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Node.js でコマンドライン引数を収集して解析する方法
  • Node.js を使用してコマンドライン ゲームを実装する方法
  • Node.jsはコマンドラインパラメータを処理するためにyargsを使用する
  • Linux コマンドライン ツールを使用して JSON 出力を解析およびフォーマットする方法
  • 画像とテキストによる Node.js コマンドライン チュートリアル
  • Node.JSはChromeブラウザがインストールされているかどうかを確認し、コマンドラインで指定されたURLを開きます。

<<:  nginx を使用して wgcloud へのアクセスを構成する方法

>>:  CSSでよく使われるフォントスタイルを設定することで様々なフォントの変更が可能(例詳細説明)

推薦する

node.js が大規模プロジェクトに適さない理由

目次序文1. アプリケーションコンポーネント2. アプリケーションの種類3. アプリケーションサービ...

MySQL 8.0.18コマンドの詳細な説明

解凍したフォルダ C:\web\mysql-8.0.11 を開き、フォルダ内に my.ini 構成フ...

MySQL マスターとスレーブの不整合とその解決策の詳細な説明

1. MySQL マスタースレーブ非同期1.1 ネットワーク遅延MySQLのマスタースレーブレプリケ...

MySQL の遅いクエリとクエリ再構築方法の記録

序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...

MySQLデータベーステーブルの定期バックアップの実装の詳細な説明

Mysqlデータベーステーブルの定期的なバックアップの実装0. 背景実際の開発環境では、フロントエン...

ふるい抽選を実施するミニプログラム

この記事の例では、ふるい抽選を実装するためのミニプログラムの具体的なコードを参考までに共有しています...

よくある CSS エラーと解決策

コードをコピーコードは次のとおりです。 IE6 と FF の違い: background:orang...

JSはオンラインでのアナウンスのスクロール効果を実現します

この記事では、オンラインアナウンスのスクロール効果を実現するためのJSの具体的なコードを参考までに共...

MySQL countの詳細な説明と関数のサンプルコード

mysql countの詳細な説明count関数はテーブルや配列内のレコードを数えるために使われます...

シンプルなデータ応答システムを実装する

目次1. デップ2. 観察者を理解する3. 監視と観察者を理解する4. トリガーの依存性5. プロセ...

MySQL 5.7.21 履歴データディレクトリからデータを復元するチュートリアルの解凍バージョン

状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

MySQL の int、char、varchar のパフォーマンスを比較する

インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありませ...

Mac に mysql5.7 をインストールするための完全な手順 (画像とテキスト付き)

最近、Mac システムを使用して、ローカル Web サーバー環境を構築する準備をしていました。 Ma...