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

如何在Yarn Berry环境下更新已打补丁的依赖包

Yarn@3.0.2 二次修改patch协议依赖包的解决方案

报错原因

出现Multiple candidate packages found报错是因为当前项目依赖树中同时存在两个版本的@pkg/pkg:未打补丁的原始版本、通过patch:协议引入的补丁版本,Yarn无法自动判定你要针对哪个版本生成补丁。

解决方案

方案1:直接修改现有补丁文件(改动量较小时推荐)

  • 进入项目根目录下的.yarn/patches文件夹,找到命名格式为@pkg-pkg@x.x.x-<随机串>.patch的对应补丁文件
  • 直接编辑该文件调整补丁逻辑
  • 修改完成后执行yarn install重新应用补丁即可生效

方案2:基于已打补丁的版本生成新修改目录(改动量较大时推荐)

  • 执行yarn list @pkg/pkg,在输出结果中找到通过patch:协议引入的版本完整标识,格式参考:@pkg/pkg@patch:@pkg/pkg@x.x.x#./.yarn/patches/@pkg-pkg@x.x.x-<随机串>.patch,复制该完整标识
  • 执行命令生成临时修改目录:yarn patch <你刚才复制的完整版本标识>
  • 进入命令返回的临时目录完成所有代码调整
  • 执行提交命令更新补丁:yarn patch-commit -s <临时目录路径>,Yarn会自动更新原有补丁文件,无需手动调整依赖配置
  • 最后执行yarn install验证补丁生效即可

注意:如果你直接指定原始版本号@pkg/pkg@x.x.x执行yarn patch,会基于未打补丁的原始版本生成全新补丁,会丢失你之前的第一次补丁改动,需要手动合并两次改动内容,不推荐该操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:15:02