npm install -g と npm install --save-dev の関係については、1 つの記事で説明しています。

この記事は、Huawei Cloud Community 「npm install -g と npm install --save-dev の関係」、著者: SHQ5785 から共有されたものです。

1. npm install ローカルインストール

  1. インストールパッケージを ./node_modules (npm コマンドを実行するディレクトリ) に配置します。node_modules ディレクトリがない場合は、現在 npm コマンドが実行されているディレクトリに node_modules ディレクトリが生成されます。
  2. ローカル インストール パッケージは、require() を通じて導入できます。

2. npm install -g グローバルインストール

  1. インストール パッケージを /usr/local またはノードのインストール ディレクトリに配置します。
  2. コマンドラインから直接使用できます。

3. npm install --save

  1. ビルド パッケージは、node_modules ディレクトリにインストールされます。
  2. ビルドは package.json の dependency 属性の下に追加されます。
  3. 後で npm install コマンドを実行すると、ビルドが自動的に node_modules ディレクトリにインストールされます。
  4. 後で npm install --production を実行するか、NODE_ENV 変数の値がproductionであることを指定すると、msbuild が自動的に node_modules ディレクトリにインストールされます。

4. npm install --save-dev

  1. msbuild パッケージは、node_modules ディレクトリにインストールされます。
  2. msbuild は package.json の devDependency 属性の下に追加されます。
  3. 後で npm install コマンドを実行すると、msbuild が Node_modules ディレクトリに自動的にインストールされます。
  4. 後で npm install --production を実行するか、NODE_ENV 変数値がproductionであることを指定すると、msbuild は、node_modules ディレクトリに自動的にインストールされません。

5. package.json の依存関係と devDependency の違い

  • 依存関係:

アプリケーションが通常の動作に依存するパッケージ。この種の依存関係は、npm install を使用してパッケージをインストールするときに、ユーザーが自動的にインストールすることが最も一般的です。

  • 開発依存関係:

アプリケーションを開発するときにツールキットが依存します。通常は、webpack、ESLint、Mocha などの開発テスト、およびパッケージ化ツールです。アプリケーションの通常の動作はこれらのパッケージに依存せず、ユーザーは npm install を使用してパッケージをインストールするときにこれらの依存関係をインストールしません。

  • ピア依存関係:

アプリケーションの実行に依存するホスト パッケージ。最も一般的なものは、さまざまな jQuery プラグインなどのプラグインです。これらのプラグイン自体には jQeury が含まれていないため、外部から提供する必要があります。この依存関係は、ユーザーが npm 1 または 2 を使用するときに自動的にインストールされます。npm 3 では自動的にインストールされず、ユーザーにインストールするように求められます。

  • バンドルされた依存関係:

パッケージを公開するときに依存関係をパッケージ化する必要があることはほとんどないと思われます。

  • オプションの依存関係:

オプションの依存関係。この依存関係はプログラムの実行には必要ありませんが、optionalDependency をインストールすると、イメージ デコード ライブラリなどの新しい機能がサポートされる可能性があります。

それでは、package.json ファイル内の devDependency オブジェクトと dependency オブジェクトの違いは何でしょうか?

devDependency のプラグイン (さまざまなローダー、babel ファミリ バケット、さまざまな webpack プラグインなど) は開発環境でのみ使用され、運用環境では使用されないため、依存関係をパッケージ化する必要はありません。実稼働環境にリリースされるため、パッケージ化する必要があります。

 

クリックしてフォローし、できるだけ早くHuawei Cloudの新しいテクノロジーについて学びましょう~

 

「Qing Yu Nian 2」の海賊版リソースが npm にアップロードされたため、npmmirror は unpkg サービスを停止せざるを 得なくなりました。 周宏儀: すべての製品をオープンソースにすることを提案します 。ここで time.sleep(6) はどのような役割を果たしますか? ライナスは「ドッグフードを食べる」ことに最も積極的! 新しい iPad Pro は 12GB のメモリ チップを使用していますが、8GB のメモリを搭載していると主張しています。People 's Daily Online は、オフィス ソフトウェアのマトリョーシカ スタイルの充電についてレビューしています。「セット」を積極的に解決することによってのみ、 Flutter 3.22 と Dart 3.4 のリリース が可能になります。 Vue3 の新しい開発パラダイム、「ref/reactive」、「ref.value」不要 MySQL 8.4 LTS 中国語マニュアルリリース: データベース管理の新しい領域の習得に役立ちます Tongyi Qianwen GPT-4 レベルのメイン モデルの価格が値下げされました97%、1元と200万トークン
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4526289/blog/11183599