Skip to content

升级依赖

升级满足匹配规则的依赖

比如此配置,升级项目内全部满足 @ruan-cat 前缀的依赖,并升级到最后一个版本。

pnpm9.5.0

bash
pnpm up @ruan-cat/*@latest

pnpm9.15.0

在 pnpm9.15.0 内,无法完成升级。要写成以下形式才行,做完整的匹配:

bash
pnpm update '@ruan-cat/*' --latest

pnpm9.15.0 的单包升级依赖

非常诡异,搞不懂。上面的写法在单独的包内,是不能完成升级的。会报错。

bash
pnpm update '@ruan-cat/*' --latest
运行 pnpm update '@ruan-cat/*' --latest 命令

2025-06-25-03-22-12

直接报错

2025-06-25-03-22-58

log
> @01s-08mes/frontend@1.0.0 up-ruan-cat-2 D:\code\github-desktop-store\zero-one-mes\mes-frontend
> pnpm update '@ruan-cat/*' --latest

 ERR_PNPM_LATEST_WITH_SPEC  Specs are not allowed to be used with --latest ('@ruan-cat/*')
 ELIFECYCLE  Command failed with exit code 1.

不明白为什么过几个月后,之前能用的方案就又不能用了。按照报错,说是 --latest 参数在加上单引号的范围查询内,是不能使用的。

在几个项目内反复折腾了一下,现在又不得不写成 9.5.0 版本的写法,只不过加上了单引号,以范围查询的方式升级依赖。

bash
pnpm up '@ruan-cat/*@latest'

目前(2025-6-25),这个写法在多个项目内都能正常工作。

pnpm9.15.0 的 -F monorepo 升级依赖

我手上有 2 个 monorepo 项目,这个筛选参数又莫名其妙的不通用。一个项目能用,另一个项目又不能用了。

针对以下命令:

bash
pnpm -F=* up @ruan-cat/*@latest

我在文档项目内,是可以正常运行的,到了别的 monorepo 项目,又不行了。

使用全量筛选参数升级整个项目全部包的依赖

2025-06-25-03-32-45

失败

2025-06-25-03-34-09

又莫名其妙的提示说,没有匹配到任何子包。

log
> @ruan-cat-10wms/root@0.0.0 up-ruan-cat-2 D:\code\github-desktop-store\gh.10wms
> pnpm -F=* up @ruan-cat/*@latest

No matches found: "-F=*"
 ELIFECYCLE  Command failed with exit code 1.

pnpm9.15.0 的 -r monorepo 升级依赖

针对上面 -F=* 参数无法筛选任何子包的错误,目前只能用更加保守的写法,完成升级:

bash
pnpm -w up '@ruan-cat/*@latest' && pnpm -r up '@ruan-cat/*@latest'

升级全部依赖

这个写法是错误的:

bash
pnpm up *@latest

会引发以下报错:

详情
log
PS D:\code\github-desktop-store\gh.09oa> pnpm up *@latest
 WARN  deprecated @types/rollup-plugin-visualizer@5.0.3: This is a stub types definition. rollup-plugin-visualizer provides its own type definitions, so you do not need this installed.
 ERR_PNPM_FETCH_404  GET https://registry.npmmirror.com/oa-frontend: Not Found - 404

This error happened while installing a direct dependency of D:\code\github-desktop-store\gh.09oa

oa-frontend is not in the npm registry, or you have no permission to fetch it.

No authorization header was set for the request.
Progress: resolved 77, reused 76, downloaded 1, added 0

正确的写法应该是:

bash
pnpm up * @latest

更加精简的写法:

bash
pnpm up -L

在 monorepo 内的写法,增加 -r 参数即可。连同根包也能匹配到位。

bash
pnpm -r up -L

升级到 latest 不一定是最准确的

有些依赖包按照 latest tag 来升级后,很容易出现严重的破坏性变更。甚至是升级后反而降低版本号的情况。

为了处理这种情况,我个人采用基于 taze 的升级方式

基于 taze 的升级方式

详情请阅读:

贡献者

The avatar of contributor named as ruan-cat ruan-cat

页面历史

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。