为什么npm update不更新package.json的SemVer?如何同时更新模块与版本记录?
问题原因
npm update 的默认行为仅会升级 node_modules 目录下的模块版本到符合 package.json 中声明的语义化版本范围的最新版本,不会修改 package.json 内的版本记录条目。
解决方案
方案1:单独更新指定模块(推荐少量模块更新时使用)
直接执行 npm install 命令指定目标版本,即可同时更新模块文件和 package.json 版本记录:
# 升级express到当前最新稳定版,同时更新package.json npm install express@latest # 也可直接指定目标版本 npm install express@4.17.1
如果需要更新的是开发依赖(存放在 devDependencies 节点下),额外添加 --save-dev 参数即可:
npm install 包名@latest --save-dev
方案2:批量更新所有过时模块
如果需要一次性把所有依赖升级到最新版本,可以借助第三方工具 npm-check-updates 实现:
- 全局安装工具:
npm install -g npm-check-updates
- 执行命令更新
package.json内所有依赖的版本声明:
ncu -u
- 执行安装命令同步更新
node_modules内的所有模块:
npm install
内容的提问来源于stack exchange,提问作者noirsociety
相关产品推荐
相关产品推荐

