0

我正在尝试按照此存储库中的说明来修补 Jest。

补丁开玩笑

建议使用patch-package但我发现在使用 Yarn 2 时可以使用yarn patch 。

我设法修补了 jest-runtime,但似乎 Jest 似乎不需要jest-runtime在它的包中,所以我不知道它是从哪里来的,将它用作声明修补文件的参考。

开玩笑的 package.json

我知道如果 Jest 是需要修补的,我可以这样声明:

package.json

"devDependencies": {
   "jest": "patch:jest@26.6.3#./patches/jest.patch"
}

我尝试使用相同的逻辑来包含以下要包含的代码,jest-runtime但它不起作用。

"devDependencies": {
   "jest": "^26.6.3",
   "jest-runtime": "patch:jest-runtime@26.6.3#./patches/jest-runtime.patch"
}

如何声明这个修补的 jest-runtime 以便 Jest 可以使用它?

4

1 回答 1

1

清单中的Resolutions字段是声明我们没有添加到devDependencies诸如子模块的修补模块的正确方法。

resolutions字段允许您指示 Yarn 使用特定的分辨率,而不是解析器通常会选择的任何分辨率。这对于强制所有包使用单个版本的依赖项或向后移植修复很有用。

该问题的修复:

{
 ...
  "dependencies": {
    "jest": "^26.6.3",
  },
  "resolutions": {
    "jest-runtime": "patch:jest-runtime@26.6.3#./patches/jest-runtime.patch"
  },
}
于 2021-05-24T17:38:33.297 回答