Node.js における npx コマンドの使用法とシナリオ分析

Node.js における npx コマンドの使用法とシナリオ分析

npx 使用チュートリアル

今晩、 Vue-Cli勉強していたところ、ふと最新の@4.xxバージョンを試してみたくなったのですが、ローカルにインストールされている scaffolding バージョンは@2.xxでした。グローバル環境を汚したくないので、 npxコマンドを使うことを考えました。途中で多くの問題に遭遇しました。今後npxより適切に使用し、 npmとの指示を区別するために、このメモを残します。

バージョン 5.2 以降、npm には npx コマンドが追加されました (付属しています)。 インストールされていない場合は、手動でインストールしてください。

npm i -g npx

npmとnpxの概念

  • NPM (Node Package Manager) は、Node.js が提供するパッケージ マネージャーです。NPM を使用して node.js パッケージをインストールできます。
  • NPX(Node Package Executed)は、パッケージを一時的にインストールして実行するためのツールとして理解できます。

要約すれば:

  • npmはパッケージのインストールに重点を置いています
  • npxはパッケージの実行に特化しており、特別な実行である。

npx の使用シナリオ (npm と比較したいくつかの利点)

いくつかの使用シナリオから始めて、現在のシナリオに対応するシナリオがあり、それを直接適用できることを願っています。

使用シナリオ 1: プロジェクトにすでにインストールされているパッケージを使用したいが、直接実行できない (グローバルにインストールされていないため、環境変数の問題が発生する)

このシナリオでは、いくつかの愚かな方法があります:

  • プロジェクトのルートディレクトリに移動し、 node-modules/.bin/包對應的腳本を実行します。
  • npm scriptを構成する: package.json内のscripts方法1追加すると、必要に応じて「npm run custom instructions」を実行してすばやく実行できます。これは基本的に方法1

よりエレガントな方法はnpx命令啦を使用することです。

npx <パッケージに対応するコマンド>

# less コンパイルを例に挙げます:
npx lessc -v # 現在のプロジェクトの less コンパイラのバージョンを表示します

使用シナリオ2: パッケージがグローバルにインストールされており、プロジェクトに異なるバージョンのパッケージがインストールされています。プロジェクトのバージョンを使用します。

今夜の私の落とし穴を2番目の使用シナリオとして取り上げると、私はすでにVue scaffoldingの@2.xxバージョンをグローバルにローカルにインストールしていますが、最新の@4.xxバージョンをローカル プロジェクト ファイル ディレクトリにインストールして使用したい場合、次のようになります。

# npm i -g vue-cli@2 が実行されました
vue-V # [email protected]
# cd my-projectはすでに実行されています
vue.js のコマンドラインから vue.js を起動します。
vue -V # [email protected]

このとき、 vue -V npm はデフォルトでグローバル パッケージを実行するため、グローバル バージョンが使用されていることがわかります。プロジェクトですでにインストールされているバージョンを使用する場合は、次のコマンドを実行します。

npx <パッケージに対応するコマンド>

# vue-cli を例に挙げます:
npx vue でプロジェクトを作成

使用シナリオ3: パッケージをグローバルまたはプロジェクトにインストールせず、一時的に使用したい場合

このシナリオでは、 npxは必須の選択です。 npxファイルを一時ディレクトリにダウンロードし、使用後に自動的に削除します。Vue Vue-Cli例に挙げてみましょう。今回は突然、 React腳手架のプロジェクト ファイル構造を見てみたくなりました。まだ習っていないので、ローカルにもグローバルにもインストールしていません(一時的にスキャフォールディング付きのReactプロジェクトを作成したいだけです)

npx create-react-app my-react-project #プロジェクトのビルド後、React スキャフォールディングは自動的に削除されます

使用シナリオ 4: 特定のバージョンのパッケージを一時的に使用する (ローカルにインストールされていない)

タイトルが示すように、ここでは突然Vue scaffoldingの@3.xxバージョンを使いたいのですが、すでに@2.xxバージョンがグローバルにインストールされています。

cd my-vue-project # 私の vue プロジェクトを入力します npx @vue/cli@3 create big-project # vue-cli の 3.x バージョンを使用して、big-project というプロジェクトを作成します

npxに関するいくつかのパラメータ

  1. 特定のバージョンをインストールして使用する: npx 包@版本號包對應的命令
  2. --no-installローカルパッケージの使用を強制します。ローカルパッケージがインストールされていない場合は、エラーが報告されます: npx --no-install vue create my-project
  3. --ignore-existingリモートモジュールを使用するようにインストールnpx --ignore-existing vue create my-project
  4. -p複数のパッケージを一度にインストールするには、パラメータ-pを使用します: npx -p @vue/cli -p less覚えておいてください: 複数のパッケージをインストールするときは必ず -p を使用してください
  5. -c 複数のパッケージを一度インストールして使用するシナリオ-c : 以前のバージョンでnpx -p vue-cli -p less lessc -v & vue -Vコマンドを実行すると、最初のコマンド項目のみが正常に実行され、less エディターのバージョンのみが印刷される可能性があります。 npx-cパラメータは、指定された範囲のすべてのコマンドを実行するようにnpxに指示します: npx -p vue-cli -p less -c "lessc -v & vue -V" 。これにより、絶対的な安全性が確保されます。注: & は両方のコマンドが実行されることを意味し、| は最初のコマンドが正常に実行され、2 番目のコマンドが実行されないことを意味します。

このセクションで最もよく使用され、重要なポイントはポイント 5 です。この要約に基づくと、インストールされているパッケージとコマンドの数に関係なく (パッケージが 1 つしかインストールされていない場合でも)、 npx -p 包1 -p 包2 -p 包n -c "命令1 & 命令2 & 命令n"に厳密に従ってください。

Node.js における npx コマンドの使い方とシナリオについてはこれで終了です。Node.js npx コマンドの使い方の詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Node.jsはコマンドラインパラメータを処理するためにyargsを使用する
  • Node.jsを使用してCLIコマンドラインを書く方法を教えます
  • Node.jsを使用して独自のコマンドラインツールを作成する方法のチュートリアル
  • Node.js を使用してコマンド ツールを作成する方法の詳細説明 - vue-cli を例に挙げて
  • Node.js コマンドライン ツールを使用して更新を確認する
  • Node.js で Log.io を使用して、ブラウザでログをリアルタイムで監視します (tail -f コマンドと同等)
  • Nodejs コマンドラインパラメータ処理モジュール コマンダーの使用例

<<:  Linux ファイアウォールを設定してポート 80 と 3306 を開く方法

>>:  複合主キーと複数列インデックスに遭遇した場合の MySQL 行ロックの詳細な説明

推薦する

コメント付きのスネークゲームを実装する js

この記事の例では、スネークゲームを実装するためのjsの具体的なコードを参考までに共有しています。具体...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

ウェブデザインでよくある間違いのまとめ

Web ページを設計する過程で、デザイナーが間違いを犯すのは必然です。特に新人は、新しいアイデアを実...

MySQL で最大接続数を正しく変更する 3 つの方法

MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...

Linuxファイルシステム操作の実装

この読書ノートでは、主にファイルシステムに関連する操作を記録します。ディスクとディレクトリの容量ディ...

Typescriptの基本構文13個を共有する

目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...

HTML タグ: サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。関連記事: HTML タ...

VMWare で Ubuntu を再起動した後、インターネットにアクセスできなくなる問題の解決方法

VMWareでUbuntuを再起動した後、インターネットにアクセスできなくなる問題を解決するには、次...

Vue における LocalStorage と SessionStorage の違いと使い方

目次LocalStorageとはSessionStorageとはLocalStorage と Ses...

HTML ウェブページにおけるさまざまなフォント形式の詳細

このセクションでは、テキストの変更の詳細から始めます。これにより、読者はさまざまな HTML フォン...

入力スクリプトなしでタイプ拡張を使用する方法

序文JS の型付けが弱く、記述基準が緩く、開発ツールのサポートが弱いため、前任者のコードをメンテナン...

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...

UrlRewriter のキャッシュ問題と関連する一連の調査

ウェブサイト機能を開発する場合、セッション キャッシュを時間内にクリアできません。一連の探索が始まり...

Linux のバックグラウンドで実行するいくつかの方法 (まとめ)

1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...