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

推薦する

ページングクリックコントロールを実装するネイティブJS

これは、ネイティブJSを使用してページングクリックコントロールを実装する必要がある面接の質問です。参...

JavaScript配列の一般的なメソッドの概要

目次1. JavaScriptで配列を作成する方法2. 配列メソッドの概要3. 方法の詳細な説明1....

MYSQL大規模書き込み問題の最適化の詳細な説明

概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...

MySQL 8.0.13 のインストールと設定のグラフィックチュートリアル

Msyqlデータベースのインストール、参考までに具体的な内容は次のとおりです。 ①ブラウザでhttp...

Mac+IDEA+Tomcat の設定手順

目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...

画像ソーシャルネットワーキングサイトのUIアプリケーションの比較分析(図)

私たちの生活、仕事、勉強において、ソーシャル ネットワークは徐々に将来のインターネット発展のトレンド...

Vueのv-onパラメータの問題についてお話しましょう

Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...

自己終了XHTMLタグを書くときに注意すべきこと

XHTMLの img タグは、次のように記述する必要があります: <img alt="...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

WeChatアプレットでSVGアイコンを使用する方法

SVG は、さまざまな利点があるため、近年広く使用されています。残念ながら、WeChat ミニプログ...

CSS3 はアニメーション属性を使用してクールな効果を実現します (推奨)

animation-name アニメーション名。複数のアニメーションがバインドされていることを示す...

ZabbixはSNMPに基づいてLinuxホストを監視します

序文: Linux ホストは、エージェント プログラムをインストールする場合でも、SNMP を使用す...

HTML メタの説明

導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...

ウェブサイトのコードブロックのpreタグにコピーコードボタンコードを追加します

他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンが...