【问题标题】:VSCode debugger not stopping on Typescript breakpointsVSCode 调试器不会在 Typescript 断点处停止
【发布时间】:2021-04-16 01:22:30
【问题描述】:

I have a Lerna monorepo with 2 modules(packages): ps and cli.

ps 只是导出一个函数 whatever,而 cli 导入。

但是,当我尝试使用 VSCode 调试此代码时,我的断点在生成的 Javascript 文件而不是我的源 Typescript 文件上停止。

这困扰了我好几个小时,我已经广泛使用了我的 tsconfig.json 和 launch.json 以及使用 vscode-pwa-analyzer 来查看 VSCode 能够检测到我的源 TS 代码,但我无法找到解决办法.

编辑:我正在使用以下设置: macOS 大苏尔 v11.1 Node.js v14.8.0 打字稿 v4.1.3

而here 是我上面调试的转储文件,您可以加载到vscode-pwa-analyzer。 我可以看到这里有一些未绑定断点错误。

【问题讨论】:

  • 看起来像您指出函数声明的问题。尝试改用 body 函数的第一行。

标签: javascript typescript visual-studio-code vscode-debugger source-maps


【解决方案1】:

我复制了问题,但我会说这是预期的行为。

实际上在函数声明上设置断点是没有意义的。 如果您将 whatever 函数更改为同步函数(即 function whatever(): void),您将看到 VSCode 不允许您中断该行。

在async 函数的特殊情况下,我们知道函数体实际上被包裹在Promise 中。可能在这种特殊情况下,打字稿调试器让我们在函数声明行设置断点,让我们检查Promise 包装之外发生的情况。

【讨论】:

  • 您必须运行lerna bootstrap 来构建包并将它们链接在一起,然后从VSCode 运行test 调试配置。是的,.js 文件应该由调试器加载并通过源映射,映射到源 .ts 文件,以便我的断点工作。
猜你喜欢
  • 2023-03-12
  • 2019-04-11
  • 1970-01-01
  • 2015-06-30
  • 2010-11-25
  • 2011-07-14
  • 2013-09-27
  • 2015-07-17
  • 2015-02-08
相关资源
最近更新 更多