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

推薦する

Zabbix で Windows のパフォーマンスを監視する方法

背景情報最近、Windows パフォーマンスに関する本を読み直しています。以前は SCOM 監視を使...

Vueカスタムコンポーネントは双方向バインディングを実装します

シナリオ:一般的に使用される親コンポーネントと子コンポーネント間の相互作用方法は次のとおりです。親コ...

Centos7にTenda U12ワイヤレスネットワークカードドライバーをインストールする際の問題を解決する

解決プロセス:方法1: CentOS7.3 のデフォルトのカーネル バージョンは低く、3.10.0-...

CSS マスクを使用して PNG 画像のサイズを大幅に最適化します (推奨)

この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...

webpackでHMRを手動で実装するいくつかの方法

目次1. はじめに2. GitHub 3. 基本構成プロジェクトディレクトリパッケージ.json c...

Vue 初心者ガイド: 環境の構築と開始方法

目次初期ビューVue開発環境の構築Vueインスタンスの作成Vue テンプレート構文Vue データバイ...

MAC での MYSQL5.7.17 接続失敗の問題と解決策

MYSQL5.7.17 が MAC で接続できない問題。SQLBench_community 6.3...

Vueカスタムディレクティブを使用してドラッグアンドドロッププラグインを構築する方法

HTML5 のドラッグ アンド ドロップ機能は誰もが知っていますが、これを使用するとドラッグ アンド...

MySQL ストレステストツール Mysqlslap の使用

1. MySQL独自のストレステストツールMysqlslap mysqlslap は、mysql に...

6ull が Linux ドライバ モジュールをロードできない問題の解決方法

目次0x01 ドライバーモジュールのロードに失敗しました0x02 ソリューション要約する0x01 ド...

Centos7 に MySQL 8.0.23 をインストールする手順 (初心者レベル)

まず、MySQL とは何かを簡単に紹介します。簡単に言えば、データベースはデータを格納するための倉庫...

UbuntuでMySQLデータベースファイルディレクトリを変更する方法

序文同社の Ubuntu サーバーは、さまざまなシステムのディレクトリを異なる論理パーティションに配...

入力タイプの制限(複数の方法)

1. 入力・貼り付けできるのは中国語のみ<input onkeyup="value=...

MySQL 5.7.17 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

mysql5.7.17無料インストールバージョンのインストールに関する最近の経験1.ダウンロードして...