npm installの--saveオプションとは何ですか?


2037

コマンドのあるチュートリアルを見ました:

npm install --save

--saveオプションは何を意味しますか?

Googleで答えを見つけることができません。


32
@ Tom---save: Package will appear in your dependencies.
WiredPrairie、

7
ショートカット-Sと-Dを使用できます-Sは--save、-Dは '--save-devです。--save(または単純な-S):パッケージが依存関係に表示されます。--save-dev(または単純な-D):パッケージはdevDependenciesに表示されます。
Gil Epshtain、2016

5
@WiredPrairieありがとう、私はnpm install (--help | -h | -help ..)何もしようとしていませんでした。
juliangonzalez

2
thx @Dmitri、私は同じ問題がありました。NPMに
アクセス

67
私は、ドキュメントやヘルプページからこのオプションのだけでも言及を取り除くの決定の背後にある理論的根拠を理解していないことなく、ツール自体に警告して、最低でも、それを卑下します。一方、初心者は何十億ものチュートリアルを介してそれにさらされています。それから彼らはそれが何をするかを見つけようとし、ドキュメントを熟読するために20分を浪費しなければならず、最終的にstackoverflowでnpm履歴を読むことになります。奇妙なことに、この種の膨大な時間の浪費を防ぐこと(質問の人気が何らかの兆候である場合)は、文書化の目的の1つです。
Michael Ekoka

回答:


2478

npm 5を更新します。

以下のようNPM 5.0.0ので、インストールされたモジュールは、デフォルトでは、依存関係として追加されていない--saveオプションが不要になりました。他の保存オプションはまだ存在しており、のドキュメントにリストされていますnpm install

元の答え:

バージョン5より前は、NPMはnode_modulesデフォルトで単にパッケージをインストールしていました。アプリ/モジュールの依存関係をインストールしようとした場合、まずそれらをインストールしてから、適切なバージョン番号とともにそれらをのdependenciesセクションに追加する必要がありますpackage.json

この--saveオプションは、パッケージを自動的にdependenciesセクション内に含めるようにNPMに指示したpackage.jsonため、追加の手順を節約できます。

また、補完的なオプションがあります--save-devし、--save-optional下のパッケージを保存devDependenciesしてoptionalDependencies、それぞれ。gruntテストライブラリなどの開発専用パッケージをインストールするときに便利です。


141
真剣に、これはどこかに文書化されていますか?Googleやnpmヘルプでそれを見つけることができませんでした。
Christian Ternus 2013年

112
npm install --helpが使用されたときに、このドキュメントが表示されたら素晴らしいでしょう。
Mark Stosberg、2013

11
@jimsmith:npm 5.0以降では、これがデフォルトです。
voithos 2017年

3
NPM 5の「npm update」はデフォルトでpackage.jsonを変更しますか?
Igor Okorokov 2017

6
@voithos私にとってNPM 5は、package.jsonのパッケージバージョンを更新します。それを回避するには、「npm update --no-save」を実行する必要があります
Igor Okorokov

219

依存関係にパッケージを追加するには:

npm install my_dep --save

または

npm install my_dep -S

または

npm i my_dep -S

devDependenciesにパッケージを追加するには

npm install my_test_framework --save-dev

または

npm install my_test_framework -D

または

npm i my_test_framework -D

package.json ここに画像の説明を入力してください


30
のようにショートカットバージョンを使用する場合は注意が必要-S -Dです。私は常にこの間違いを犯し、npmは文句を言ったり、package.jsonに追加したりしません
Murray Wynnes

7
-s(小文字)は--silentオプション用であり-d、ログレベル情報用であるため、文句はありません。どちらも有効なショートカットです。
タンビ

131

package.jsonファイルがない場合は何もしません。まず、実行npm initして作成します。その後の呼び出しnpm install --saveたりnpm install --save-dev、またはnpm install --save-optional更新しますpackage.jsonあなたの依存関係を一覧表示します。


37
さかのぼって動作することがわかりました(それはらしい)。npm install --save-dev最初に実行してから、npm initを実行すると、package.jsonが入力されます。
Jacob Wang

20

NPM Docによると

ここに画像の説明を入力してください

したがって、を実行するnpm install package_nameと、パッケージの依存関係が自動的にpackage.jsonに追加されるはずですよね?


1
--no-saveは、npm <5などの機能が必要なときに使用することだと思います
Abhiroj Panwar

npm config ls -lデフォルトでは、save-xxxオプションはすべてfalseであり、saveのみがtrueであることを示しています。
ROROROOROROR

--save-xxxxxxのように存在しないオプションを指定しても、npmはエラーを発生させないようです。それを無視するだけで、デフォルトの動作--save-prodが影響します。多分--saveはいくつかの古いnpmバージョンから来ています。
レオン

13

使用することもでき-S-Dまたは-P、アプリケーションの依存関係にdevの依存性やPRODの依存関係をパッケージを保存するのと同等です。以下のその他のNPMショートカットを参照してください。

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

このショートカットのリストは、次のコマンドを実行して取得できます。

$ npm help 7 config

7

npm 5以降では、npm installに記載されているように、同じことを行う--save-prod(または-P)の--saveが、同じことを行うよりも有利です。これまでのところ、提供されている場合はまだ機能します。--save


目を見張るような読みのバリエーション、矛盾、スレッドの乗っ取りをすべて救うために、これはトップに行く必要があります。SOは、CRUDを回避して作業を続行できるように、有効なURLで簡潔な回答を奨励する必要があります。(Quoraにはきちんとした「これは適切な答えですか?」などがあり、それ以前に提案していたため、SOにこれを行うように提案されていました)\ n公式ノードドキュメントに古い(無断の)オプションについての言及がなく、ほとんどのノード参照は事前のようです。 -5.0、頭を回します。
killjoy

6

npm 5以降、デフォルトでnpmが保存されるようになりました。以前のバージョンでのnpmと同様の古い方法(自動保存なし)でnpmを機能させたい場合は、以下のように構成オプションを更新して自動保存を有効にできます。

npm config set save false

現在の設定を取得するには、次のコマンドを実行します。

npm config get save

出典:https : //blog.pusher.com/what-you-need-know-npm-5/


6

npm install package_x --save

指定されたパッケージ(package_x)は、依存関係内のpackage.jsonに保存されます。追加した場合

npm install <<package_x>> --save-dev

その後、devDependencies内に保存されます


12
あなたの回答は、他の回答がまだカバーしていないことの何に貢献していますか?
ペドロA

@Pedro A-私の疑いは、男が今読んだものを書き直したことです。それから彼の友達に彼に賛成票を与えます。
IAM_AL_X

3

package.jsonに依存関係を追加するより簡単な(そしてもっと素晴らしい)方法は、コマンドラインから追加する方法です。npminstallコマンドに--saveまたは--save-devのいずれかでフラグを付けます。その依存関係を使用します。


3

npm install --saveまたはnpm install --save-dev、プロジェクトにパッケージをインストールするときに、この2つのオプションの1つを選択する理由。

上記の回答から、ファイルnpm install --savedependencyフィールドpacakage.jsonと他のフィールドにエントリが追加されることは明らかdev-dependencyです。

したがって、なぜpacakge.jsonファイルにインストールモジュールのエントリが必要なのかという疑問が生じます。 gitまたはコードを誰かに渡すnode-modulesときは、サイズが非常に大きく、共通の場所なので、これを避けるためにそれを行います。

それで、他の人がそのプロジェクトに特に必要な、または必要なすべてのモジュールをどのように取得するのか、答えは from the package.json実行または開発に必要なすべてのパッケージのエントリを含むファイルをます。

コードwe simply need to run the npm installコマンドを取得した後、package.jsonファイルを読み取り、必要な必須パッケージをインストールします。


2

npm i(パッケージ名)--save

簡単に言うと、上記のコマンドを使用すると、package.jsonファイルにパッケージ名を書き込む必要がなくなります。これにより、パッケージの名前と依存関係が自動的に追加され、本番環境に移動したり、別の機会にセットアップしたりするときに必要になります。

npmヘルプインストール

上記のコマンドllはより多くのオプションを見つけ、defをpicに表示するのに役立ちます ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.