web-dev-qa-db-ja.com

--saveフラグはnpm installで何をしますか

いずれかのパッケージをインストールする手順が表示されます

npm install <package_name>

または

npm install <package_name> --save

または

npm install <package_name> --save-dev

これらのオプションの違いは何ですか?

55
Obromios

npm install <package_name> --saveはパッケージをインストールし、package.jsonの依存関係を更新します。この質問が尋ねられたので、--saveがデフォルトオプションになったので、npmに変更があったため、--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 で確認できます。

31
Obromios

npm installは、メインpackage.jsonのパッケージバージョンを保存または更新する3つの排他的でオプションのフラグを取ります。

-S、-save:パッケージが依存関係に表示されます。

-D、-save-dev:パッケージがdevDependenciesに表示されます。

-O、-save-optional:optionalDependenciesにパッケージが表示されます。

上記のオプションのいずれかを使用してpackage.jsonへの依存関係を保存する場合、追加のオプションのフラグがあります。

-E、--save-exact:保存された依存関係は、npmのデフォルトのsemver範囲演算子を使用するのではなく、正確なバージョンで構成されます。さらに、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

41
Orange WebDev

--saveフラグはもはや目的を果たしません。

以前は、他の回答が述べたように、--saveフラグはプロジェクトのpackage.jsonファイルの依存関係を更新しますが、npm installはデフォルトでこの機能を含みます。

この時点で、npm installが依存関係を保存しないようにするには、--no-saveフラグを使用する必要があります。

コメント でこれについて言及してくれたCoruscate5に感謝します。

npm-install documentation の詳細情報:

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範囲演算子を使用するのではなく、正確なバージョンで構成されます。

-B、-save-bundle:保存された依存関係もbundleDependenciesリストに追加されます。

15
2xj