どちらかでパッケージをインストールする手順が表示されます
npm install <package_name>
または
npm install <package_name> --save
または
npm install <package_name> --save-dev
これらのオプションの違いは何ですか?
回答:
npm install <package_name> --save
パッケージをインストールし、package.jsonの依存関係を更新します。この質問が行われたため、npmに変更が加えられ--save
、これがデフォルトオプションになりました。したがって--save
、依存関係を更新するためにを使用する必要はありません。
npm install <package_name> --no_save
パッケージをインストールしますが、package.jsonにリストされている依存関係は更新しません。
npm install <package_name> ---save-dev
devDependencies
パッケージ内のを更新します。これらは、ローカルのテストと開発にのみ使用されます。
詳細については、https://docs.npmjs.com/getting-started/using-a-package.jsonをご覧ください。
npm installは、メインのpackage.jsonのパッケージバージョンを保存または更新する3つの排他的なオプションのフラグを取ります。
-S, --save
:パッケージは依存関係に表示されます。
-D, --save-dev
:パッケージはdevDependenciesに表示されます。
-O, --save-optional
:パッケージはoptionalDependenciesに表示されます。
上記のオプションのいずれかを使用して依存関係をpackage.jsonに保存する場合、追加のオプションのフラグがあります。
-E, --save-exact
:保存された依存関係は、npmのデフォルトのsemver range演算子を使用するのではなく、正確なバージョンで構成されます。さらに、npm-shrinkwrap.jsonがある場合は、それも更新されます。
<scope>
オプションです。パッケージは、指定されたスコープに関連付けられたレジストリからダウンロードされます。指定されたスコープにレジストリが関連付けられていない場合は、デフォルトのレジストリが想定されます。npm-scopeを参照してください。
注:スコープ名に@記号を含めない場合、npmはこれを代わりにGitHubリポジトリとして解釈します。以下を参照してください。スコープ名の後にはスラッシュを付ける必要があります。
例:
npm install sax --save
npm install githubname/reponame
npm install @myorg/privatepackage
npm install node-tap --save-dev
npm install dtrace-provider --save-optional
npm install readable-stream --save --save-exact
注:<name>
現在の作業ディレクトリに名前の付いたファイルまたはフォルダーがある場合、それをインストールしようとし、有効でない場合にのみ名前でパッケージをフェッチしようとします。
(公式ドキュメントから)https://docs.npmjs.com/cli/install
--save
オプションは引き続き機能しているように見えますが、必須ではなくなりました。パッケージはデフォルトで依存関係に保存されるようになりました。ロジックが逆になりました-パッケージを保存したくない場合は、指定する必要があります--no-save
ザ・ --save
フラグは、もはや目的を果たしていません。
以前は、他の回答が指摘したように、--save
フラグはプロジェクトのpackage.json
ファイル内の依存関係を更新していましたが、npm install
現在はデフォルトでこの機能が含まれています。
この時点で、npm install
依存関係を保存しないようにする場合は、--no-save
フラグを使用する必要があります。
コメントでこれについて言及してくれたCoruscate5に感謝します。
で詳細情報NPMインストールドキュメント:
npm installは、指定されたパッケージをデフォルトで依存関係に保存します。さらに、いくつかの追加のフラグを使用して、保存する場所と方法を制御できます。
-P、-save-prod:パッケージが依存関係に表示されます。-Dまたは-Oが存在しない限り、これがデフォルトです。
-D、-save-dev:パッケージがdevDependenciesに表示されます。
-O、-save-optional:パッケージはoptionalDependenciesに表示されます。
--no-save:依存関係への保存を防ぎます。
上記のオプションのいずれかを使用して依存関係をpackage.jsonに保存する場合、2つの追加のオプションフラグがあります。
-E、-save-exact:保存された依存関係は、npmのデフォルトのsemver range演算子を使用するのではなく、正確なバージョンで構成されます。
-B、-save-bundle:保存された依存関係もbundleDependenciesリストに追加されます。