回答:
package.jsonで指定されたパッケージバージョンのnpm installとnpm updateの処理の違い:
{
"name": "my-project",
"version": "1.0", // install update
"dependencies": { // ------------------
"already-installed-versionless-module": "*", // ignores "1.0" -> "1.1"
"already-installed-semver-module": "^1.4.3" // ignores "1.4.3" -> "1.5.2"
"already-installed-versioned-module": "3.4.1" // ignores ignores
"not-yet-installed-versionless-module": "*", // installs installs
"not-yet-installed-semver-module": "^4.2.1" // installs installs
"not-yet-installed-versioned-module": "2.7.8" // installs installs
}
}
要約:唯一の大きな違いは、ファジーバージョン管理を使用して既にインストールされているモジュールが ...
npm installnpm updateさらに:installとupdate、デフォルトのハンドルdevDependenciesによって異なり
npm installフラグが追加されない限り、devDependencies をインストール/更新します--productionnpm updateフラグが追加されない限り、devDependencies を無視します--devなぜ使用npm installするのですか?
でnpm install依存関係を処理する以外にも、さまざまなことを行うからpackage.jsonです。npm installで確認できるように、次のことができます...
PATH)。npm install -g <name>--forcenpm install --save somePackage*依存関係に*を保存することは可能ですか?
postinstallインストール時に実行するようなスクリプトは更新時にではないことにも注意します。
installでupdate動作が異なるpackage.json場合は、これらのケースを例に追加すると便利です。
1.3.0 -> 1.3.1これはに似て^1.3.0い^ますが、メジャーバージョンを更新します1.3.0 -> 1.4.0。
npm installは、package.jsonファイルにリストされているすべてのモジュールとその依存関係をインストールします。
npm updateは、node_modulesディレクトリ内のすべてのパッケージとその依存関係を更新します。
npm install expressは、expressモジュールとその依存関係のみをインストールします。
npm update expressは expressモジュールを更新します(npm@2.x以降、依存関係は更新されません)。
したがって、更新は、すでにモジュールがあり、新しいバージョンを取得したい場合のためのものです。
npm installそれともnpm update?または、言い換えれば、私は現在使用npm installしていますが、更新も行っているようですが、なぜ使用する必要があるのnpm updateですか?
update、package.jsonに関係なく、常に最新バージョンに更新されますが、package.jsonでinstall指定されたバージョンは尊重されますか?
updateモジュールの最新バージョンをインストール(または更新)します。install提示されていない場合は最新バージョンのモジュールをインストールし、それ以外の場合は現在のバージョンを維持します。
npm updateは、パッケージに関係なく、package.jsonに基づいて最新バージョンに更新されます。「express」:「3.x」を使用していて、バージョン3.1.0を使用している場合は、最新の3.xタグに更新されます。4.xバージョンがある場合、最新のバージョンはインストールされません。
ほとんどの場合、これはnpmで公開されているモジュールの最新バージョンをインストールします。
npm install express --save
モジュールを最新バージョンにアップグレードするためのより良い:
npm install express@latest --save --force
--save:パッケージが依存関係に表示されます。
詳細:npm-install
npm install express@latest --save --forceまさに私が欲しかったものでした。
多くの違いがすでに言及されています。ここにもう一つあります:
実行npm installあなたのソースディレクトリの最上部には、さまざまなスクリプトを実行します:prepublish、preinstall、install、postinstall。これらのスクリプトの機能によっては、npm install依存関係をインストールするだけの場合よりもかなり多くの作業を行う場合があります。
私prepublishが呼び出すユースケースがmakeありましたMakefileが、package.json更新された場合に依存関係をフェッチするように設計されました npm install内から呼び出すMakefileと、無限再帰が発生しますが、呼び出しnpm updateは正常に機能し、すべての依存関係をインストールして、make直接呼び出された場合でもビルドを続行できるようにします。
redis、モジュール、およびother_module以前のバージョンを必要としredis、npm install other_moduleそれを保証するother_module古いバージョンを使用します。other_module/node_modules/redis必要に応じて追加します。
~1.3ですか?