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 行ロックの詳細な説明

推薦する

LinuxベースのApacheウェブサイトサービス構成の詳細な説明

オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...

HTMLとリソースがどのように読み込まれるかを理解します

このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...

JavaScriptにおけるこれの深い理解

Jsでのこれの深い理解JavaScriptスコープはstatic scopeスコープですが、 Jsの...

MySQL 8.0.18はデータベースにユーザーを追加し、権限を付与します

1. データベースにログインするには、rootユーザーを使用することをお勧めします。 mysql -...

ドメイン名を介してプロジェクトにアクセスするnginx + tomcatの例

ドメイン名を使ってプロジェクトにアクセスする方法が気になったのですが、自分でドメイン名を取得するのは...

Nginx 仮想ホストの詳細な分析

目次1. 仮想ホスト1.1 仮想ホストの概念1.2 仮想ホストタイプ2. IP仮想ホストに基づく2....

TSで最も一般的な宣言マージ(インターフェースマージ)

目次1. マージインターフェース1.1 非関数メンバー1.2 関数メンバー序文:今日お話ししたいのは...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...

MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...

MySQL の複合インデックスはどのように機能しますか?

目次背景複合インデックスを理解する左端一致原則フィールド順序の影響複合インデックスは単一のインデック...

CentOS に Docker をインストールし、Springboot で Docker をリモート公開する方法

目次1. CentOS7.0へのJDK1.8のインストール2. Dockerのインストール3.Doc...

HTMLテキストオーバーフローの2つの一般的な解決策は省略記号を表示することです

方法1: CSSオーバーフロー省略を使用して解決する解決策は次のとおりです。 CSSコード: ディス...

フォーム OnSubmit と input type=image の使用の概要

ここに <input type="image"> がある場合、この画...

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...

MySQLとRedisでセカンダリキャッシュを実装する方法の詳細な説明

Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...