之间有什么实际差别npm install
和npm 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
另外 : install
和update
默认手柄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
在你的源代码目录的顶部将运行各种脚本: prepublish
, preinstall
, install
, postinstall
。 根据什么这些脚本做,一个npm install
可能会做相当多的工作不仅仅是安装的依赖。
我刚喝了使用情况prepublish
会打电话make
和Makefile
设计,如果获取的依赖关系package.json
得到了更新。 调用npm install
在内部Makefile
将会导致一个无限循环,同时呼吁npm update
工作得很好,安装所有的依赖关系,以便构建能够继续即使make
被直接调用。
Answer 5:
npm update
:安装和更新与在的package.json最新节点模块
npm install
:安装它们在所定义的package.json节点模块(无更新)