NPM安装与更新 - 有什么区别?(npm install vs. update - what

2019-06-18 05:42发布

之间有什么实际差别npm installnpm update ? 什么时候应该使用哪一个?

Answer 1:

之间的区别安装故宫和故宫更新中的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 update

另外installupdate默认手柄devDependencies不同

  • npm install安装/升级 devDependencies除非--production添加标志
  • npm update忽略 devDependencies除非--dev添加标志

为什么要使用npm install呢?

由于npm install ,当你看,除了在处理你的依赖更确实package.json 。 正如你可以看到在NPM安装 ,你可以...

  • 手动安装节点模块
  • 它们设置为全局的 (这使他们在shell的PATH使用) npm install -g <name>
  • 安装由Git标签描述的某些版本
  • 从git的URL安装
  • 强制与重新安装--force


Answer 2:

NPM安装安装所列出的所有模块package.json文件和它们的依赖。

NPM更新更新的所有软件包node_modules目录和它们的依赖。

故宫安装快车只安装Express模块和它的依赖。

NPM更新快递更新Express模块(带npm@2.x开始,它不会更新它的依赖)。

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



Answer 3:

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

npm install express --save

或者更好的升级模块,以最新版本的使用:

npm install express@latest --save --force

--save :包就会出现在你的依赖。

更多信息: NPM-安装



Answer 4:

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

运行npm install在你的源代码目录的顶部将运行各种脚本: prepublishpreinstallinstallpostinstall 。 根据什么这些脚本做,一个npm install可能会做相当多的工作不仅仅是安装的依赖。

我刚喝了使用情况prepublish会打电话makeMakefile设计,如果获取的依赖关系package.json得到了更新。 调用npm install在内部Makefile将会导致一个无限循环,同时呼吁npm update工作得很好,安装所有的依赖关系,以便构建能够继续即使make被直接调用。



Answer 5:

npm update :安装和更新与在的package.json最新节点模块

npm install :安装它们在所定义的package.json节点模块(无更新)



文章来源: npm install vs. update - what's the difference?
标签: node.js npm