我有一个用 TypeScript 编写的依赖项。依赖包括 NPM 包中的源映射和原始源。如果我在我的代码中设置断点然后单步执行依赖项,它会正确单步执行 TypeScript 而不是编译后的 JavaScript。但是,如果我在 TypeScript 代码中设置断点然后启动我的应用程序,VSCode 会说
断点被忽略,因为未找到生成的代码(源映射问题?)。
如果我在进入依赖项后设置断点,一切正常。
我相信这里的问题是源映射是单向的,所以当我在 TypeScript 源文件中有一个断点时,它不知道它在 JavaScript 中的位置(通过节点调试器实际设置断点是必需的)。打开 JavaScript 文件后,VSCode 能够匹配这两者,现在断点可以工作了。
所以问题是,我怎样才能让我的 TS 断点从启动开始工作,而不必先进入文件?依赖项是很多文件,每次运行都必须重置断点是有问题的,特别是因为如果我花费的时间太长(超过几秒钟),我正在调试的特定问题会遇到套接字连接超时。
我想要的是一种告诉 TypeScript 的方法,“在启动调试器时解析这些 JavaScript 文件并同步源映射,以便断点正确匹配”。
我知道通用功能是可用的,因为我可以通过 TypeScript 文件中的断点成功调试依赖项本身(我是依赖项的维护者)。当它作为 NPM 模块加载时,似乎丢失了一些信息。