npm install和npm update之间的实际区别是什么?什么时候用哪个?
npm install
npm update
npm安装安装在package.json文件中列出的所有模块及其依赖项。
package.json
npm更新更新node_modules目录下的所有包及其依赖项。
node_modules
NPM安装快讯只安装express模块及其依赖项。
NPM更新快递更新express模块(从npm@2.x开始,它不更新其依赖项)。
因此,当您已经拥有模块并希望获得新版本时,才会进行更新。
npm安装和npm更新处理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 } }
总结:唯一的区别是已经安装的具有模糊版本控制的模块…
另外: install和update默认处理devDependencies不同
install
update
--production
--dev
为什么要使用npm install ?
npm install -g <name>
PATH
--force
在大多数情况下,这将安装在npm上发布的模块的最新版本。
npm install express --save
或者最好将模块升级到最新版本使用:
npm install express@latest --save --force
--save:包将出现在你的依赖项中。
--save
更多信息:npm-install
前面已经提到了许多区别。这里还有一个:
在源目录的顶部运行npm install将运行各种脚本:prepublish, preinstall, install, postinstall。根据这些脚本的作用,npm install可能要做的工作远不止安装依赖项。
prepublish
preinstall
postinstall
我刚刚有一个用例,其中prepublish将调用make和Makefile被设计为获取依赖,如果package.json得到更新。从Makefile中调用npm install将导致无限递归,而调用npm update工作得很好,安装所有依赖项,这样即使直接调用make,构建也可以继续进行。
make
Makefile
npm update:使用package.json中的最新节点模块进行安装和更新
npm install:安装包中定义的节点模块。json(没有更新)