npm安装与更新 – 有什么区别?
npm install
和npm update
什么实际区别? 我应该什么时候使用哪个?
npm install和npm update的区别:
的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更新得到更新
为什么要使用npm install
?
因为除了在package.json
处理依赖关系之外, npm install
function更多。 正如你可以在npm安装中看到的,你可以…
- 手动安装节点模块
- 使用
npm install -g <name>
将它们设置为全局 (将它们放在shell的PATH
) - 安装由git标签描述的某些版本
- 从一个混帐url安装
- 用
--force
强制重新安装
npm install将安装package.json
文件及其依赖关系中列出的所有模块。
npm更新更新node_modules
目录中的所有软件包及其依赖关系。
npm install express只安装express模块及其依赖项。
npm update express更新了express模块及其依赖关系。
所以更新是为了当你已经有了模块,并希望获得新的版本。
在大多数情况下,这将安装在npm上发布的模块的最新版本。
npm install express --save
或者更好地将模块升级到最新版本使用:
npm install express@latest --save --force
--save
:包会出现在你的依赖关系中。
更多信息: npm-install
已经提到许多区别。 这里还有一个:
在源目录的顶部运行npm install
将运行各种脚本: prepublish
, preinstall
, install
, postinstall
。 根据这些脚本的作用,与安装依赖关系相比, npm install
可能会做更多的工作。
我刚刚有一个用例,其中prepublish
会调用make
,而Makefile
被devise用来在package.json
更新的时候获取依赖关系。 在Makefile
调用npm install
会导致无限recursion,而调用npm update
工作得很好,安装所有的依赖关系,这样即使make
被直接调用,构build也可以继续。