首页 > 解决方案 > VS Code 调试动态插入的 JS 和映射文件

问题描述

我在 VS 代码中有一个打字稿项目(显然在 Node 上运行并使用 Debugger for Chrome 扩展)。我的 html 文件引用了一个静态 javascript 文件,但随后该 javascript 文件动态注入了 javascript 资源的内容。

const body = document.querySelector('body');
const script = document.createElement('script');
script.setAttribute("rbl-script", "true");
script.innerHTML = content;
body.appendChild(script);

在上面的代码中,是使用设置为 'http://localhost:8887/js/KatAppProvider.js'content的调用的返回数据,这是从. (注意,我不能只是静态链接这个文件,因为在生产中,请求将发送到内容管理 Web 服务。)$.ajax( ajaxConfig )ajaxConfig.urltsc --build$.ajax

如果我尝试在 VS Code 中的相应KatAppProvider.ts文件中设置断点,它们永远不会被命中。问题似乎是//# sourceMappingURL=KatAppProvider.js.map生成的行。我认为过去一切正常,可能是 VS Code 或扩展更新改变了行为,但我无法确认。我可以让它工作的唯一方法是在构建到//# sourceMappingURL=js/KatAppProvider.js.map(以包含js/)之后手动修改生成文件中的映射 url 行。

  1. 我认为这是按原样工作(没有js/前缀)的想法是否记错了?
  2. 这是我的场景的预期行为吗?如果是这样,有没有办法更改此文件编译以包含js/前缀(但没有其他文件 - 即项目中的静态链接文件)

标签: javascripttypescriptjavascript-debuggermap-files

解决方案


推荐阅读