❌❌❌❌❌不要在公司代码上执行,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
相关推荐
程序员鱼皮14 分钟前
这套 Java 监控系统太香了!我连夜给项目加上了
java·前端·ai·程序员·开发·软件开发
用户9704438781163 小时前
PHP 函数的参数顺序,它们是随机的吗?
后端·程序员·代码规范
舒一笑5 小时前
如何优雅统计知识库文件个数与子集下不同文件夹文件个数
后端·mysql·程序员
周小董6 小时前
[750]flask之异步非堵塞实现
程序员
周小董7 小时前
[73]python产生token及token验证
程序员
字节跳跃者7 小时前
SpringBoot + MinIO + kkFile 实现文件预览,这样操作更安全!
java·后端·程序员
周小董7 小时前
[1098]frida主动调用方法
程序员
周小董7 小时前
[874]python图片转字符串
程序员
周小董7 小时前
[1329]python报错AttributeError: module ‘collections‘ has no attribute ‘Callable‘
程序员
周小董7 小时前
[79]win10安装redis
程序员