【发布时间】:2018-10-21 01:37:39
【问题描述】:
我有一个由 sapui5 作为控制器动态加载的文件。我已经更改了我的代码,以便我可以利用 Typescript 进行 Intellisense 和故障检测。
我的 JS 文件已成功创建,并在 Chrome 中正常运行。 DevTools/Sources/Network 窗口没有列出我的“FinalAssembly.controller.js”文件,也没有列出名称相似的“FinalAssembly.controller.ts”文件。
我发现如果我从文件底部删除 '//# sourceMapURL=' 行,Chrome 最终会列出我的 JS 文件。
我读过在我的文件顶部使用'//# sourceURL ='行会导致我的文件被列出,但事实并非如此,此外,我读到使用这个指令应该允许我要更改源列表中显示的名称,它不会。 Chrome 似乎忽略了这个指令。
截至今天,Chrome 表明它是最新的 66 版。我在过去 4 小时内阅读了许多文章和 Github 问题,这些文章和 Github 问题表明 Source Maps 往往存在问题,并且在某些版本的 Chrome 中可能会失败.
地图文件本身可以在 Internet Explorer 中运行,但我无法真正看到自己使用它进行开发。
有没有人在 Chrome 66 中使用 Source Map 调试过 JS?谁能建议我如何在 Chrome 中调试我的地图文件使用情况?
我在我的网站上放置了一个通过 VSCode (tsc.exe) 创建的非常简单的测试:http://www.ia.uk.com/TypescriptTest/default.htm - 在我的 Chrome 66 上,这个似乎根本没有下载地图文件(Fiddler 没有看到任何要求)。不显示代码的任何 TS 视图。根据我原来的问题,这不是动态加载的库,但确实表明存在问题。
【问题讨论】:
-
您可以尝试将
debugger关键字放入您确定已执行的代码中的 TypeScript 源文件吗?当 DevTools 处于活动状态时,它应该在该行中断并通过源映射向您显示代码。 -
当我尝试不使用 sourceMappingURL= 时,我会在 Sources 中获得文件名,但无论如何都会发生这种情况。使用 sourceMappingURL=,调试器停止,但文件选项卡显示类似“VM539”(数量不同)。 Sources里面没有文件,但是sourceMappingURL指令已经填成了绝对路径,所以很明显是浏览器处理的。
-
这很奇怪。以防万一,您确定启用了源映射吗?您使用什么工具来创建源地图?
-
创建麻烦应用程序的工具是 VS2017,但我认为我看到的问题是 Chrome - 我添加了一个非常简单的示例,表明 Typescript 调试甚至无法正常工作当脚本未动态加载时。这对你有用吗?
-
一位同事在他的 Chrome 66 中运行了这个,test.ts 文件出现在 test.js 旁边,并且调试工作正常,所以我要卸载/重新安装 Chrome。
标签: javascript typescript google-chrome sapui5