目次
2。エントリスクリプトを作成します
3. package.json経由で実行可能にします
4.コマンドライン引数を追加します
5.ローカルでテストします
6.ヘルプ、バージョン、オプションを追加します
7。NPMに公開(オプション)
8。ボーナス:自動完了と高度な機能を追加します
ホームページ ウェブフロントエンド jsチュートリアル node.jsを使用してCLIツールを構築します

node.jsを使用してCLIツールを構築します

Jul 24, 2025 am 03:39 AM

プロジェクトを初期化し、package.jsonを作成します。 2。シバンを使用してエントリスクリプトindex.jsを作成します。 3.パッケージのビンフィールドからコマンドを登録します。 4. Yargsおよびその他のライブラリを使用して、コマンドラインパラメーターを解析します。 5。NPMリンクを使用して、ローカルでテストします。 6.エクスペリエンスを強化するためのヘルプ、バージョン、オプションを追加します。 7.オプションでNPM Publishを介して公開します。 8.オプションでYargsを使用して自動完成を達成します。最後に、合理的な構造とユーザーエクスペリエンスの設計を通じて実用的なCLIツールを作成し、自動化タスクを完了し、ウィジェットを配布し、完全な文で終了します。

node.jsを使用してCLIツールを構築します

node.jsを使用してCLIツールを構築することは、タスクを自動化する、ワークフローを合理化する、または分散した小さなユーティリティを構築する方法です。 node.jsおよびnpmを使用すると、コマンドラインインターフェイス(CLI)ツールの作成は、初心者でも簡単でアクセスできます。一歩一歩構築する方法は次のとおりです。

node.jsを使用してCLIツールを構築します

1.プロジェクトを設定します

新しいnode.jsプロジェクトを初期化することから始めます。

 mkdir my-cli-tool
CD My-Cli-Old
npm init -y

これにより、 package.jsonファイルが作成されます。それを変更して、スクリプトをコマンドラインから実行可能にします。

node.jsを使用してCLIツールを構築します

2。エントリスクリプトを作成します

メインエントリポイントとしてファイル( index.jsなど)を作成します。

 #!/usr/bin/envノード

console.log( 'CLIツールからこんにちは!');

Shebang( #!/usr/bin/env node )は、node.jsでこのファイルを実行するようシステムに指示します。

node.jsを使用してCLIツールを構築します

3. package.json経由で実行可能にします

package.jsonを更新して、 binフィールドを含めます。

 「ビン」:{
  「mycli」:「./index.js」
}

現在、グローバルにインストールされると、 mycli端末で利用可能なコマンドになります。


4.コマンドライン引数を追加します

組み込みのprocess.argvまたはYargs司令官のようなライブラリを使用して、引数を処理します。

yargs (推奨):

 NPMインストールYargs

index.jsを更新:

 #!/usr/bin/envノード

const yargs = require( 'yargs/yargs');
const {hidebin} = require( 'yargs/helpers');

const argv = yargs(hidebin(process.argv))
  .command( &#39;Greet <name>&#39;、 &#39;greet a person&#39;、(yargs)=> {
    yargs.positional( &#39;name&#39;、{
      説明:「挨拶する名前」、
      タイプ:「文字列」
    });
  }、(argv)=> {
    console.log( `hello、$ {argv.name}!`);
  })
  。ヘルプ()
  .argv;

今実行:

ノードindex.jsはアリスに挨拶します
#出力:こんにちは、アリス!

5.ローカルでテストします

開発中にパッケージをグローバルにリンクします:

 NPMリンク

これで実行できます:

 mycliはボブに挨拶します

コードの変更はすぐに反映されます。


6.ヘルプ、バージョン、オプションを追加します

ヘルプテキストとバージョン情報を追加することにより、使いやすさを向上させます。

 .version( &#39;1.0.0&#39;)
.USAGE( &#39;$ 0 <CMD> [args]&#39;)

オプションを追加することもできます。

 .option( &#39;loud&#39;、{
  エイリアス: &#39;l&#39;、
  タイプ:「ブール」、
  説明:「大声で話す!」
})

その後、それを使用してください:

 console.log( `hello、$ {argv.name} $ {argv.loud? &#39;!&#39;! &#39;。&#39;。 &#39;}`);

7。NPMに公開(オプション)

ツールを共有したい場合:

 npmログイン
NPMパブリッシュ

パッケージ名が一意であることを確認してください。公開されると、他の人はグローバルにインストールできます。

 npmインストール-g mycli

8。ボーナス:自動完了と高度な機能を追加します

yargsを使用すると、シェルの自動完了を有効にできます。

 // .argvの前にこれを追加します
.showhelponfail(false)
.fail((msg、err)=> {
  (err)スローERR;
  console.error(msg);
})
.completemition();

mycli completion実行して完了スクリプトを生成するか、サポートされている場合はmycli [tab][tab]を使用します。


node.jsでCLIツールを構築するには、複雑なセットアップは必要ありません。明確なコマンド構造、適切なエラー処理、および思慮深いUX(ヘルプテキストやフラグなど)を使用すると、ツールは便利でユーザーフレンドリーなものになります。

基本的に:スクリプトをセットアップし、 package.jsonに登録し、引数をきれいに解析し、 npm linkでローカルでテストします。残りは毒です。

以上がnode.jsを使用してCLIツールを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

node.jsでHTTPリクエストを作成する方法は? node.jsでHTTPリクエストを作成する方法は? Jul 13, 2025 am 02:18 AM

node.jsでHTTPリクエストを開始するには、組み込みモジュール、axios、およびnode-fetchを使用する3つの一般的な方法があります。 1.依存関係のない内蔵http/httpsモジュールを使用します。これは基本的なシナリオに適していますが、https.get()を使用してデータを取得したり、.write()を介してPOSTリクエストを送信するなど、データステッチとエラーモニタリングの手動処理が必要です。 2.Axiosは、約束に基づいたサードパーティライブラリです。簡潔な構文と強力な機能を備えており、非同期/待ち声、自動JSON変換、インターセプターなどをサポートします。非同期リクエスト操作を簡素化することをお勧めします。 3.Node-Fetchは、約束と単純な構文に基づいて、ブラウザフェッチに似たスタイルを提供します

JavaScriptデータ型:プリミティブ対参照 JavaScriptデータ型:プリミティブ対参照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと参照タイプに分割されます。プリミティブタイプには、文字列、数字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り当てるときにコピーされるため、互いに影響を与えません。オブジェクト、配列、関数などの参照タイプはメモリアドレスを保存し、同じオブジェクトを指す変数は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

配列にJavaScriptに値が含まれているかどうかを確認する方法 配列にJavaScriptに値が含まれているかどうかを確認する方法 Jul 13, 2025 am 02:16 AM

JavaScriptでは、配列に特定の値が含まれているかどうかを確認します。最も一般的な方法は、boolean値を返す()を含む()であり、構文はarray.includes(valuetofind)です。古い環境と互換性がある必要がある場合は、numbers.indexof(20)!== -1などのindexof()を使用します。オブジェクトまたは複雑なデータの場合、ユーザー(user => user.id === 1)などの綿密な比較には、いくつかの()メソッドを使用する必要があります。

高度なJavaScriptスコープとコンテキスト 高度なJavaScriptスコープとコンテキスト Jul 24, 2025 am 12:42 AM

JavaScriptの範囲は、グローバル、機能、およびブロックレベルの範囲に分割される変数のアクセシビリティ範囲を決定します。コンテキストは、この方向を決定し、関数呼び出し方式に依存します。 1.スコープには、グローバルスコープ(どこでもアクセス可能)、関数スコープ(関数内でのみ有効)、およびブロックレベルのスコープ(letとconstは{}内で有効です)が含まれます。 2。実行コンテキストには、変数オブジェクト、スコープチェーン、およびこの値が含まれます。これは、通常の関数におけるグローバルまたは未定義を指します。メソッドコールはコールオブジェクトを指し、コンストラクターは新しいオブジェクトをポイントし、call/apply/bindで明示的に指定することもできます。 3。閉鎖とは、外部スコープ変数へのアクセスと記憶の関数を指します。それらはしばしばカプセル化とキャッシュに使用されますが、引き起こす可能性があります

JavaScriptで入力フィールドの値を取得する方法 JavaScriptで入力フィールドの値を取得する方法 Jul 15, 2025 am 03:09 AM

HTML入力ボックスの値を取得するために、コアはDOM操作を介して対応する要素を見つけて値属性を読み取ることです。 1. document.getElementByIDを使用して、最も直接的な方法です。入力にIDを追加した後、このメソッドを使用して要素を取得して値を読み取ることができます。 2。QuerySelectorを使用してより柔軟になり、名前、クラス、タイプなどの属性に基づいて要素を選択できます。 3.入力リスナーを追加または変更して、リアルタイムで入力コンテンツを取得するなど、インタラクティブな関数を達成できます。 4.スクリプトの実行タイミング、スペルミラー、null判断に注意し、値にアクセスする前に要素が存在することを確認してください。

JSで選択したラジオボタンの値を取得するにはどうすればよいですか? JSで選択したラジオボタンの値を取得するにはどうすればよいですか? Jul 18, 2025 am 04:17 AM

選択したラジオボタン値を取得するための2つのコアメソッドがあります。 1. QuerySelectorを使用して選択したアイテムを直接取得し、入力[name = "your-radio-name"]を使用します:選択した要素を取得し、その値属性を読み取ります。最新のブラウザに適しており、簡潔なコードがあります。 2。document.getElementsbyNameを使用して、ループノデリストを介して最初にチェックされた無線を見つけて見つけ、その値を取得します。これは、古いブラウザーと互換性がある、またはプロセスの手動制御が必要なシナリオに適しています。さらに、名前属性の綴り、選択されていない状況の処理、およびコンテンツの動的な負荷に注意を払う必要があります

JavaScriptテンプレートリテラル:構文とユースケース JavaScriptテンプレートリテラル:構文とユースケース Jul 13, 2025 am 02:28 AM

テンプレート文字列は、javaScriptes6に導入された機能であり、コンテンツをバックテックでラップし、可変補間とマルチライン文字列をサポートします。 1.バックティックを使用して、このISATEMPLATELITERALなどの文字列を定義します。 2。IAM$ {age} yearsoldなどの$ {} syntaxを介して変数または式を挿入します。 3.新しいラインを手動で追加することなく、自然にマルチラインテキストをサポートします。一般的なシナリオには、HTMLコンテンツの動的生成、マルチライン文字列出力、および簡素化された条件付き論理ステッチが含まれます。メモには、インジェクション攻撃の回避、タグテンプレートの高度な使用、ロジックをシンプルに保つことが含まれます。

JavaScriptを使用して、安全なサンドボックス付きIFRAMEを構築します JavaScriptを使用して、安全なサンドボックス付きIFRAMEを構築します Jul 16, 2025 am 02:33 AM

JavaScriptを使用して安全なSandbox iframeを作成するには、最初にHTMLのSandbox属性を使用して、スクリプトの実行、ポップアップウィンドウ、フォームの提出など、iFrameの動作を制限します。第二に、必要に応じて許可を緩和するために、許可を緩和するなどの特定のトークンを追加することにより。次に、PostMessage()を組み合わせて安全なクロスドメイン通信を実現しながら、メッセージソースとデータを厳密に検証します。最後に、ソースを確認しない、CSPなどをセットアップしないなど、一般的な構成エラーを避け、オンラインになる前にセキュリティテストを実行します。

See all articles