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--productionnpm 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 中定义的节点模块(不更新)