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

推薦する

シンプルなタブバー切り替えケースを実現するJavaScript

この記事では、タブバーの切り替え効果を簡単に実現するためのJavaScriptの具体的なコードを参考...

MYSQL ローカルインストールと問題解決

序文この記事はかなり詳細で、少し面倒です。他のチュートリアル ドキュメントでは多くの手順が省略されて...

MySQL インデックスの原理と最適化の詳細な説明

序文この記事は Meituan の大物によって書かれました。とても素晴らしいので、皆さんと共有したい...

vite2.x は ant-design-vue@next コンポーネントのオンデマンド読み込みを実装します。

1. 使用バージョンバイト:2.0 ant-design-vue: 2.0.0-rc.8ヴュー:3...

スネークゲームを作るための Pygame コード

目次使用されるPygame関数スクリーンの作成ヘビの作成ヘビを動かすゲームオーバーの処理食事を増やす...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう ...

Dockerコンテナが起動直後に終了する問題を解決する

最近、Docker がコンテナの起動時に特定のプロセスを直接実行できるようにする方法を調べていたとこ...

Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

序文Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソ...

Ubuntuで顔認識ログインを実装するための完全な手順

1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...

MySql が常に mySqlInstallerConsole ウィンドウをポップアップする問題の解決策

MySql は常に MySQLInstallerConsole.exe ウィンドウを定期的にポップア...

MySQLでユーザー認証情報を表示する具体的な方法

具体的な方法: 1. コマンドプロンプトを開く2. mysql -u root -pコマンドを入力し...

HTMLはa要素hrefのURLリンクを自動的に更新したり新しいウィンドウを開いたりする機能を実装する

場合によっては、次のような機能を実装したいことがあります。リンクをクリックします。リンクがブラウザで...