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

推薦する

動的テーブルを実装するための要素サンプルコード

目次【コード背景】 【コード実装】 #1# -> コード再利用の基本は、再利用可能なコンポーネ...

MySQL ルートパスワードを変更する複数の方法 (推奨)

方法1: SET PASSWORDコマンドを使用する MySQL -u ルート mysql> ...

モバイル端末での Vue2.x Picker のグローバル呼び出し実装

目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...

MySQL マスタースレーブ同期遅延の原因と解決策

歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...

rpm を使用して指定されたバージョンの docker (1.12.6) をインストールする詳細な手順

1. 理由システムが Centos7.3 の場合、yum install docker を使用して直...

CSS3入力ボックスの実装コードはGoogleログインのアニメーション効果に似ています

CSS3を使用して、Googleログインページと同様の入力ボックスをアニメーション化します。効果1 ...

Vue3 でサードパーティのコンポーネントライブラリをオンデマンドでロードする方法

序文Element Plus を例に、コンポーネントとスタイルのオンデマンド読み込みを構成します。環...

WeChatアプレットコンポーネント開発:視覚的な映画座席選択機能

目次1. はじめに1. コンポーネントデータ2. コンポーネントページのレイアウト1. ロゴエリアの...

Dockerはローカルディレクトリとデータボリュームコンテナ操作をマウントします

1. DockerはローカルディレクトリをマウントしますDocker は、ホスト上のディレクトリをイ...

Vue で HTML 5 ドラッグ アンド ドロップ API を使用する方法

ドラッグ アンド ドロップ API は、ドラッグ可能な要素を HTML に追加し、ドラッグ可能な豊富...

リンクAの意味論、書き方、ベストプラクティス

リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...

Vue は Websocket カスタマー サービス チャット機能を実装します

この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...

MySQLイベント計画タスクに関する簡単な説明

1. イベントが有効になっているかどうかを確認する'%sche%' のような変数を表...

MySQL インデックス プッシュダウン (ICP) の簡単な理解と例

序文Index Condition Pushdown (ICP) は、MySQL 5.6 の新機能で...

Nginx インストール エラーの解決方法

1. nginx-1.8.1.tar.gzを解凍する2. fastdfs-nginx-module-...