使用 Yarn 2 时如何修补 jest-runtime?

How to patch jest-rutime when using Yarn 2?

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

Patch Jest.

使用Yarn 2时建议使用patch-package but I figured out that I can use yarn patch

我设法修补了 jest-runtime 但似乎 Jest 似乎不需要 jest-runtime 在它的包中所以我不知道它来自哪里作为参考来声明修补文件.

Jest 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 可以使用它?

清单中的 Resolutions 字段是声明我们未添加到 devDependencies 的修补模块(例如子模块)的正确方法。

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

该问题的修复:

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