599

npm installとの実質的な違いは何npm updateですか? いつどれを使用する必要がありますか?

4

5 に答える 5

737

package.jsonで指定されたパッケージ バージョンのnpm installnpm 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

さらに、デフォルトinstallupdateは devDependencies を異なる方法で処理します

  • npm installフラグが追加されていない限り、devDependenciesをインストール/更新します--production
  • npm updateフラグが追加されない限り、devDependenciesは無視されます--dev

なぜnpm installまったく使用するのですか?

npm installで依存関係を処理する以外に、見るともっと多くのことができるからですpackage.jsonnpm installでわかるように、次のことができます...

  • ノードモジュールを手動でインストールする
  • を使用して、それらをグローバルとして設定します(シェルの に配置しますPATHnpm install -g <name>
  • git タグで記述された特定のバージョンをインストールする
  • git URL からインストールする
  • で再インストールを強制する--force
于 2013-11-06T22:26:10.017 に答える
100

npm installは、ファイルにリストされているすべてのモジュールpackage.jsonとその依存関係をインストールします。

npm updateは、ディレクトリ内のすべてのパッケージnode_modulesとその依存関係を更新します。

npm install expressは、expressモジュールとその依存関係のみをインストールします。

npm update expressはexpressモジュールを更新します(npm@2.x以降、依存関係は更新されません)。

したがって、更新は、モジュールがすでにあり、新しいバージョンを取得したい場合のものです。

于 2012-09-18T15:15:37.767 に答える
48

ほとんどの場合、npm で公開されているモジュールの最新バージョンがインストールされます。

npm install express --save

モジュールを最新バージョンにアップグレードするには、次のようにします。

npm install express@latest --save --force

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

詳細: npm-install

于 2014-01-15T22:46:54.647 に答える
12

多くの違いがすでに述べられています。ここにもう1つあります:

ソース ディレクトリの最上部で実行すると、npm installさまざまなスクリプトが実行されます: prepublish、、、。これらのスクリプトの機能によっては、依存関係をインストールするだけでなく、かなり多くの作業を行う場合があります。preinstallinstallpostinstallnpm install

prepublishが呼び出されmake、更新されたMakefile場合に依存関係をフェッチするように設計されたユースケースがありpackage.jsonました。npm install内部からの呼び出しMakefileは無限再帰につながりますが、呼び出しは問題なく機能し、直接呼び出されたnpm update場合でもビルドを続行できるようにすべての依存関係をインストールします。make

于 2015-09-09T16:33:24.627 に答える