3

我想使用上一个答案jest 文档node --debug-brk中描述的功能在基于 npm/yarn 1 的项目中进行调试,但在基于 Yarn 2/PnP(即插即用)的项目中不存在,因此这些说明不会为我工作。node_modules/

在 yarn 2 of中访问二进制文件的常用方法是yarn run --inspect-brk jest --runInBand从终端启动调试会话,但是当通过 连接到 Chrome 的远程目标检查器时chrome://inspect,我们会收到一条错误消息,提示无法连接到 jest.js 二进制文件,因为它是一条路径到一个.zip文件。

Uncaught Error: Cannot find module '/Users/MY_USERNAME/PATH_TO_MY_PROJECT/.yarn/cache/jest-npm-24.9.0-8ddb425e99-2.zip/node_modules/jest/bin/jest.js

在不降级到 Yarn 1 的情况下有哪些解决方法?

4

2 回答 2

3

更新:下面报告的解决方法对于 Node12.15及以下版本是必需的。之后12.16.1,您可以直接使用以下命令:

yarn run --inspect-brk jest --runInBand

添加到节点 12.16.1 的修复程序在这里

旧版本 Node、12.15 及更低版本的存档答案

一种选择是在使用yarn unplug前使用yarn run

   yarn unplug jest

之后,以下内容适用于 Yarn 2 和 Chrome 中的 Jest chrome://inspect

   yarn run --inspect-brk jest --runInBand # any additional jest args

这种方法的一个缺点是您可能需要unplug在签入分支之前撤消它,因为它被描述为一种短期措施,而不是一种长期状态来留下依赖关系。

于 2020-03-13T14:41:57.687 回答
1
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Jest",
      "skipFiles": ["<node_internals>/**"],
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "yarn",
      "runtimeArgs": ["run", "--inspect-brk", "jest"],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "port": 9229
    }
  ]
}
于 2020-09-23T10:51:55.570 回答