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