❌❌❌❌❌不要在公司代码上执行,npm使用命令小版本升级依赖并更新package.json

注意,一旦版本确定了,轻易不要变更,批量的变更更是不允许发生!特别是公司项目,就算当时没测出问题,一旦上线,就有可能发生重大事故,所以以下实验,仅允许在个人学习项目中使用,出了事不要把我供出来!

要使用 npm 命令升级某个依赖的小版本(minor/patch) ,并且自动更新 package.json 文件,可以用下面的几种方法:


使用npm outdated检查版本

使用outdated命令可以轻松的检测是项目的当前版本、需要升级的版本,最新版本供开发者参考。

vscode原生支持查看最新版本

vscode中,无任何插件加载,打开package.json,将鼠标放置到版本上,等待数秒,会显示最新版本发布时间。

使用 npm update + --save

sql 复制代码
npm update <包名> --save
  • 这会将依赖更新到允许的最新版本(比如 ^1.2.3 → 最新 1.x.x)。
  • 会更新 package-lock.jsonnode_modules,但 package.json 中的版本号 不会改变,除非超出范围。

方法 2:直接指定版本 + 安装(推荐)

你可以查看最新的小版本,然后直接用安装命令:

sql 复制代码
npm install <包名>@latest --save

如果你只想升级到 minor/patch 版本,建议使用:

lua 复制代码
npm install <包名>@^x.y.z --save

例子:将 axios 升级到 1.6.3 及之后的 patch:

kotlin 复制代码
npm install axios@^1.6.3

这将更新 package.json 里的版本范围(如 ^1.6.3),并同步安装。


方法 3:借助 npm-check-updates 工具(推荐)

npm-check-updates(简称 ncu)可以智能更新 package.json 中的依赖版本范围。

安装:

sql 复制代码
npm install -g npm-check-updates

查看可升级的包:

复制代码
ncu

升级小版本:

css 复制代码
ncu -u --target minor

或者只升级 patch:

css 复制代码
ncu -u --target patch

然后再执行:

复制代码
npm install

补充:--save 说明

  • npm 5 以后默认就会保存依赖到 package.json,不需要额外加 --save
  • 所以 npm install xxx@^1.2.3 就足够了
  • 使用npm-check-updates更新完package.json还需要重新npm install一下才可以更新package-lock.json

如果支持npx,也可以直接通过npx来运行。

bash 复制代码
npx npm-check-updates -u
npm install

VS Code版本插件

  • version lens

    推荐!安装后在package.json打开后,右上角有一个V字图标,手动开启关闭,不需要时不会造成负担。

  • NPM Package Version Bumper 打开命令面板,输入插件名称,提供丰富的升级方式,缺点是会直接产生git记录。

  • vscode-npm-dependency

    使用不当非常危险⚠️!在package.json文件中点击鼠标右键,选择npm udpate,会直接将依赖版本都升级成了最新版本。

总结

目标 命令
仅更新已安装包(不改 package.json) npm update
更新指定小版本并更新 package.json npm install xxx@^x.y.z
批量升级所有依赖(含更新 package.json) ncu -u --target minor && npm install
相关推荐
小流苏生22 分钟前
“《关于我妈说我又老又丑又穷已经没有女生会看得上我了这件事情》”
程序员
CodeSheep10 小时前
稚晖君公司人事大变动,来了!
前端·后端·程序员
潘高18 小时前
做一个鸿蒙倒班应用时,我踩过的 4 个“看起来很简单”坑
程序员
程序员cxuan20 小时前
Pi + DeepSeek-v4-Flash,这用着也太爽了。
人工智能·后端·程序员
程序员cxuan21 小时前
Claude Opus 5 的系统提示词被扒出来了
人工智能·后端·程序员
AskHarries1 天前
为什么产品没人用
程序员
Patrick_Wilson2 天前
代码重构中的蚕食方式是什么
程序员·架构·代码规范
Patrick_Wilson2 天前
你知道 git check 的故事吗
git·程序员·命令行
SemiTris2 天前
为什么 C/C++ 不走 Java 式的虚拟机跨平台路线?
java·程序员
亚雷2 天前
图解分布式架构:一个 Console,一群 Sidecar
后端·面试·程序员