npm安装与更新 – 有什么区别?

npm installnpm update什么实际区别? 我应该什么时候使用哪个?

npm installnpm update的区别:

的package.json

 { "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更新得到更新

为什么要使用npm install

因为除了在package.json处理依赖关系之外, npm installfunction更多。 正如你可以在npm安装中看到的,你可以…

  • 手动安装节点模块
  • 使用npm install -g <name>将它们设置为全局 (将它们放在shell的PATH
  • 安装由git标签描述的某些版本
  • 从一个混帐url安装
  • --force强制重新安装

npm install将安装package.json文件及其依赖关系中列出的所有模块。

npm更新更新node_modules目录中的所有软件包及其依赖关系。

npm install express只安装express模块​​及其依赖项。

npm update express更新了express模块​​及其依赖关系。

所以更新是为了当你已经有了模块,并希望获得新的版本。

在大多数情况下,这将安装在npm上发布的模块的最新版本。

 npm install express --save 

或者更好地将模块升级到最新版本使用:

 npm install express@latest --save --force 

--save :包会出现在你的依赖关系中。

更多信息: npm-install

已经提到许多区别。 这里还有一个:

在源目录的顶部运行npm install将运行各种脚本: prepublishpreinstallinstallpostinstall 。 根据这些脚本的作用,与安装依赖关系相比, npm install可能会做更多的工作。

我刚刚有一个用例,其中prepublish会调用make ,而Makefile被devise用来在package.json更新的时候获取依赖关系。 在Makefile调用npm install会导致无限recursion,而调用npm update工作得很好,安装所有的依赖关系,这样即使make被直接调用,构build也可以继续。