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

使用pnpm为同版本别名依赖配置补丁 解决补丁未应用报错

问题:pnpm中为别名依赖打补丁失败的解决办法

在使用pnpm时,需通过package.json管理两个同版本的依赖(其中一个用别名),要求给别名依赖打补丁,另一个保持原样。当前的package.json配置如下:

{
  "name": "examples-valid-misc",
  "dependencies": {
    "jsii-code-samples": "1.7.0",
    "jsii-code-samples-gz": "npm:jsii-code-samples@1.7.0"
  }
}

尝试给别名依赖jsii-code-samples-gz应用补丁时,出现错误:

ERR_PNPM_PATCH_NOT_APPLIED  The following patches were not applied: jsii-code-samples-gz

解决步骤
  • 生成对应别名的补丁文件
    不要手动配置patchedDependencies,直接用pnpm的补丁命令针对别名依赖操作:

    pnpm patch jsii-code-samples-gz
    

    执行命令后pnpm会打开临时目录,修改需要调整的代码,保存并关闭编辑器后,pnpm会自动生成补丁文件,并更新package.json的配置。

  • 确认补丁配置的正确性
    手动配置时需要注意:patchedDependencies中要填写原包名,但补丁文件名要关联别名以区分。pnpm自动生成的配置会类似如下,这样能确保补丁只作用于别名依赖:

    {
      "name": "examples-valid-misc",
      "dependencies": {
        "jsii-code-samples": "1.7.0",
        "jsii-code-samples-gz": "npm:jsii-code-samples@1.7.0"
      },
      "patchedDependencies": {
        "jsii-code-samples@1.7.0": "patches/jsii-code-samples-gz@1.7.0.patch"
      }
    }
    
  • 重新安装依赖生效补丁
    执行pnpm install,pnpm会识别别名对应的原包,并为其应用指定的补丁文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:37:12