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

如何通过Yarn 1.22的package.json仅替换特定版本的minimatch?

问题描述

我的项目通过间接依赖引入了minimatch 3.0.4和5.0.1版本,其中3.0.4版本存在已知漏洞。我希望将minimatch 3.0.4强制解析为3.0.6或3.0.7版本,但保留5.0.1版本不变,最终同时引用3.0.6和5.0.1版本。尝试过以下全局resolutions配置:

resolutions: {
  "minimatch": "3.0.6"
}

但该配置会将所有版本的minimatch都重定向到3.0.6,无法保留5.0.1版本。请问能否通过package.json配合Yarn 1.22实现需求?

解决方案

可以实现。Yarn 1.x的resolutions支持版本范围匹配,只需针对minimatch的3.x版本段单独配置替换规则,就能不影响5.x版本。

在package.json中添加如下配置:

"resolutions": {
  "minimatch@^3.0.0": "3.0.6"
}
  • 规则说明:minimatch@^3.0.0表示匹配所有3.x系列的minimatch依赖(包括有漏洞的3.0.4),Yarn会将这些依赖强制解析为3.0.6;
  • 5.0.1版本不在^3.0.0的范围内,因此会保持原版本不变,最终项目中会同时存在3.0.6和5.0.1两个版本的minimatch。

如果需要更精准地仅替换3.0.4版本,也可以写成:

"resolutions": {
  "minimatch@3.0.4": "3.0.6"
}

验证方法

执行yarn install完成依赖安装后,运行以下命令查看依赖树,确认版本替换是否生效:

yarn list minimatch

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:20:25