npm install
和之间的实际区别是什么npm update
?我什么时候应该使用哪个?
5 回答
package.json中指定的包版本的npm install和npm 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
另外:默认情况install
下update
以不同方式处理 devDependencies
npm install
除非添加标志,否则将安装/更新devDependencies--production
npm update
除非添加标志,否则将忽略devDependencies--dev
为什么要使用npm install
?
因为npm install
除了在package.json
. 正如您在npm install中看到的,您可以...
- 手动安装节点模块
- 使用_ _
PATH
_npm install -g <name>
- 安装由 git 标签描述的某些版本
- 从 git url 安装
- 强制重新安装
--force
npm install安装文件中列出的所有模块package.json
及其依赖项。
npm update更新目录中的所有包node_modules
及其依赖项。
npm install express仅安装 express 模块及其依赖项。
npm update express更新 express 模块(从 npm@2.x 开始,它不会更新其依赖项)。
因此,更新适用于您已经拥有该模块并希望获得新版本的情况。
在大多数情况下,这将安装在 npm 上发布的模块的最新版本。
npm install express --save
或更好地将模块升级到最新版本使用:
npm install express@latest --save --force
--save
:包将出现在您的依赖项中。
更多信息:npm-install
已经提到了许多区别。这里还有一个:
npm install
在源目录顶部运行将运行各种脚本:prepublish
、preinstall
、install
、postinstall
。根据这些脚本的作用,anpm install
可能比仅仅安装依赖项做更多的工作。
我刚刚有一个用例prepublish
可以调用make
,并且Makefile
设计用于在更新时获取依赖package.json
项。npm install
从内部调用Makefile
会导致无限递归,而调用npm update
工作得很好,安装所有依赖项以便即使make
直接调用也可以继续构建。
npm update
: 使用 package.json 中的最新节点模块安装和更新
npm install
: 安装 package.json 中定义的节点模块(不更新)