VSCode中,如何以单元测试为入口调试React源码

发布于 2022-09-11 19:55:41 字数 999 浏览 11 评论 0

问题来源

我将React项目clone到本地,想以单元测试为入口调试源码。

配置launch.json

{
  "version": "0.1.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Jest Entry",
      "program": "${workspaceRoot}/node_modules/.bin/jest",
      "args": [
        "${file}",
        "--config",
        "./scripts/jest/config.source.js",
        "--runInBand"
      ],
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen",
      "env": {
        "NODE_ENV": "development"
      }
    }
  ]
}

根据以上配置,VSCode会调试当前打开的文件,然后我在测试用例中打断点,这一切都很顺利。
图片描述
但是当我继续把断点打到/packages/react/src/ReactElement.js中时,VSCode无法准确进入断点。
图片描述

个人猜测

Jest是使用Babel来transform源码的(/scripts/jest/preprocessor.js),缺少sourceMap导致VSCode无法把断点映射到源码处。

哪位朋友可以指出我这一调试流程的问题或是提供调试React源码的方法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝不服输 2022-09-18 19:55:41

你猜得是对的.
你需要在scripts/jest/preprocessor.jsbabel配置中添加sourceMaps: 'both'或者sourceMaps: 'inline'

图片描述

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文