この記事は、Huawei Cloud Community 「npm install -g と npm install --save-dev の関係」、著者: SHQ5785 から共有されたものです。
1. npm install ローカルインストール
- インストールパッケージを ./node_modules (npm コマンドを実行するディレクトリ) に配置します。node_modules ディレクトリがない場合は、現在 npm コマンドが実行されているディレクトリに node_modules ディレクトリが生成されます。
- ローカル インストール パッケージは、require() を通じて導入できます。
2. npm install -g グローバルインストール
- インストール パッケージを /usr/local またはノードのインストール ディレクトリに配置します。
- コマンドラインから直接使用できます。
3. npm install --save
- ビルド パッケージは、node_modules ディレクトリにインストールされます。
- ビルドは package.json の dependency 属性の下に追加されます。
- 後で npm install コマンドを実行すると、ビルドが自動的に node_modules ディレクトリにインストールされます。
- 後で npm install --production を実行するか、NODE_ENV 変数の値がproductionであることを指定すると、msbuild が自動的に node_modules ディレクトリにインストールされます。
4. npm install --save-dev
- msbuild パッケージは、node_modules ディレクトリにインストールされます。
- msbuild は package.json の devDependency 属性の下に追加されます。
- 後で npm install コマンドを実行すると、msbuild が Node_modules ディレクトリに自動的にインストールされます。
- 後で 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万トークン