You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用npm批量更新同一父包下的所有子包(以@mantine为例)

如何一次性更新所有@mantine系列npm包

假设我的package.json包含以下依赖:

"@mantine/core": "^5.1.5",
"@mantine/dates": "^5.1.5",
"@mantine/form": "^5.1.5",
"axios": "^0.27.2",
"react": "^18.1.0"

我想一次性更新所有@mantine相关的包,不想逐个写npm i @mantine/core@latest @mantine/dates@latest...,类似npm i @mantine/*@latest的命令可行吗?


直接使用@mantine/*@latest不可行

npm本身不支持这种通配符格式的包名进行安装或更新,执行该命令会触发报错,因为npm无法解析通配符对应的具体包资源。

可行的批量更新方案

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

这是最便捷的批量更新方式,先全局安装该工具:

npm install -g npm-check-updates

接着指定@mantine/*范围的包更新到最新版本:

ncu -u "@mantine/*"

执行后工具会自动修改package.json中所有@mantine依赖的版本号为最新,最后执行常规安装命令即可完成更新:

npm install

方法2:通过Shell命令批量生成更新列表

如果不想额外安装工具,可以用Shell命令提取当前已安装的@mantine包名,再批量执行更新:

npm i $(npm ls --depth=0 | grep @mantine | awk -F'[ @]' '{print $2"@latest"}')

这条命令的逻辑是:

  • npm ls --depth=0:列出项目顶层依赖
  • grep @mantine:筛选出所有@mantine开头的包
  • awk:提取包名并拼接@latest后缀
  • 最后通过npm i安装这些包的最新版本

方法3:手动指定包名(备选)

如果项目中@mantine系列包数量较少,也可以直接列出所有目标包进行更新,虽然繁琐但直观:

npm install @mantine/core@latest @mantine/dates@latest @mantine/form@latest

内容的提问来源于stack exchange,提问作者Shahriar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:50:30