npm installとの実質的な違いは何npm updateですか? いつどれを使用する必要がありますか?
5 に答える
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 install - によって更新されます
npm update
さらに、デフォルトinstallでupdateは devDependencies を異なる方法で処理します
npm installフラグが追加されていない限り、devDependenciesをインストール/更新します--productionnpm updateフラグが追加されない限り、devDependenciesは無視されます--dev
なぜnpm installまったく使用するのですか?
npm installで依存関係を処理する以外に、見るともっと多くのことができるからですpackage.json。npm installでわかるように、次のことができます...
- ノードモジュールを手動でインストールする
- を使用して、それらをグローバルとして設定します(シェルの に配置します
PATH)npm install -g <name> - git タグで記述された特定のバージョンをインストールする
- git URL からインストールする
- で再インストールを強制する
--force
npm installは、ファイルにリストされているすべてのモジュールpackage.jsonとその依存関係をインストールします。
npm updateは、ディレクトリ内のすべてのパッケージnode_modulesとその依存関係を更新します。
npm install expressは、expressモジュールとその依存関係のみをインストールします。
npm update expressはexpressモジュールを更新します(npm@2.x以降、依存関係は更新されません)。
したがって、更新は、モジュールがすでにあり、新しいバージョンを取得したい場合のものです。
ほとんどの場合、npm で公開されているモジュールの最新バージョンがインストールされます。
npm install express --save
モジュールを最新バージョンにアップグレードするには、次のようにします。
npm install express@latest --save --force
--save: パッケージは依存関係に表示されます。
詳細: npm-install
多くの違いがすでに述べられています。ここにもう1つあります:
ソース ディレクトリの最上部で実行すると、npm installさまざまなスクリプトが実行されます: prepublish、、、。これらのスクリプトの機能によっては、依存関係をインストールするだけでなく、かなり多くの作業を行う場合があります。preinstallinstallpostinstallnpm install
prepublishが呼び出されmake、更新されたMakefile場合に依存関係をフェッチするように設計されたユースケースがありpackage.jsonました。npm install内部からの呼び出しMakefileは無限再帰につながりますが、呼び出しは問題なく機能し、直接呼び出されたnpm update場合でもビルドを続行できるようにすべての依存関係をインストールします。make