Node.js を使用している場合は、npm と npx の両方に遭遇したことがあるでしょう。
これらは似ているように聞こえ、どちらも Node.js エコシステムの不可欠な部分ですが、異なる目的を果たします。この投稿では、npm と npx の違いを検討し、それぞれを使用する時期と理由を理解するのに役立ちます。
NPM (Node Package Manager の略) は、Node.js のデフォルトのパッケージ マネージャーです。これにより、開発者はプロジェクト内のパッケージ (ライブラリまたはコード モジュール) をインストール、共有、管理できます。
npm で役立つ一般的なタスクをいくつか示します:
npm install
パッケージ バージョンの管理: ビルドの一貫性を確保するために、ライブラリの特定のバージョンをロックダウンします。
プロジェクト固有のスクリプトの実行: package.json ファイルで定義されています。
npm run
npx は、NPM バージョン 5.2.0 (2017 年 7 月) で導入されたツールです。 npm は依存関係とパッケージを管理しますが、npx は Node.js パッケージ、特に CLI ツールをグローバルにインストールせずに実行するように設計されています。
1.パッケージのインストールと実行
npm install -g create-react-app create-react-app my-app
npx create-react-app my-app
これにより、一度しか使用しないパッケージのインストールを回避できるため、時間とディスク容量が節約されます。
2.グローバルパッケージ
npm を使用すると、グローバル パッケージがインストールされ、システム全体に永続化されるため、環境が乱雑になる場合があります。
npx を使用すると、システム上にパッケージを永続的に保持することを心配せずにパッケージを実行できます。
npm を使用してパッケージをグローバルにインストールする例:
npm install -g typescript tsc --version
npx を使用すると、グローバル インストールは必要ありません:
npx tsc --version
3.自動パッケージ処理
npx でコマンドを実行すると、パッケージがローカルまたはグローバルに存在するかどうかが自動的にチェックされ、存在しない場合は一時的にダウンロードして実行されます。これは、1 回限りのタスクを実行する場合に特に便利です。
例えば:
npx cowsay "Hello, World!"
これにより、Cowsay パッケージがインストールされていない場合はダウンロードされ、実行され、その後クリーンアップされます。
4.スクリプトなしのパッケージ実行可能ファイル
npm を使用して package.json スクリプトで定義されたコマンドを実行する場合は、次のように記述します:
npm run my-script
しかし、npx を使用すると、実行可能なコマンドを直接実行できます:
npx my-script
これは、スクリプトが package.json で明示的に定義されていない場合に特に便利です。
- 依存関係の管理: プロジェクトの依存関係のインストール、更新、削除には npm を使用します。
- プロジェクト固有のスクリプトの実行: package.json で定義され、プロジェクトに合わせて調整されます。
- パッケージ バージョンの管理: プロジェクトの一貫性を維持するためにライブラリの特定のバージョンをロックダウンします。
- 1 回限りのパッケージ実行: 一度しか使用しない CLI ツールなど、グローバルにインストールしたくないパッケージには npx を使用します。
- 実行可能ファイルの実行: create-react-app のようなコマンドについては、npx を使用するとグローバル インストールなしで実行できます。
- さまざまなバージョンのテスト: ツールをインストールせずに、特定のバージョンのツールをすばやく実行します。
最後に、npm と npx はどちらも Node.js エコシステムに不可欠なツールですが、目的は異なります。プロジェクトの依存関係を管理するには npm を使用し、永続的にインストールせずにパッケージを実行するには npx を使用します。
この小さな違いにより、ワークフローがより効率的になり、時間を節約し、不必要なグローバル インストールを回避できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3