在 Chrome 中调试从 TypeScript 生成的动态加载的 Javascript

标签 debugging google-chrome dynamic typescript getscript

使用 VS 2012、Web Essentials、TypeScript 0.8.3

有一个 TypeScript 文件“test.ts”。它被编译成“test.js”,末尾有一个 sourceMappingURL。

//@ sourceMappingURL=test.js.map

Javascript 文件通过 $.getScript 动态加载。但是,在 Chrome 开发者工具中我无法在任何地方找到源代码,因此无法设置断点。

如果我通过附加 sourceURL 手动编辑生成的 Javascript,情况会有所改善。

//@ sourceMappingURL=test.js.map
//@ sourceURL=test.ts

名称“test.ts”在 Chrome 的源树中提供。但是,单击它会打开 Javascript 文件“test.js”。可以设置和使用断点。

实际上,无论编码的是正确的名称“test.ts”还是任何其他名称,都并不重要。

应该做什么,以便可以使用 Chrome 调试 TypeScript 文件(其生成的 Javascript 文件是动态加载的)?

我也尝试过金丝雀。这没有什么区别。

最佳答案

我写这封信是为了肯定 WhyMe 所写的内容。使用 jQuery.append() 附加标签不会将文件名添加到源树,但使用 DOM 元素到 .appendChild 确实会将文件名添加到源树。

var fileref = document.createElement('script');
                    fileref.setAttribute("type", "text/javascript");
                    fileref.setAttribute("src", 'Scripts/app/Views/Management/Spock.js');
                    document.getElementsByTagName("head")[0].appendChild(fileref)

Spock.js 将位于源树中的正确文件夹中。

使用//# source=Path_to_file 有效,但是 A. 路径必须正确,并且 B. 文件名出现在下;这真的很丑。

PS - 我没有 50 点声誉,因此无法在 WhyMe 的评论旁边回复评论,但我可以添加答案吗?

关于在 Chrome 中调试从 TypeScript 生成的动态加载的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15459218/

相关文章:

javascript - 在应用程序管理器中单步执行 JavaScript 代码?

android - 在 gdb 中看不到任何函数

c# - Visual Studio 和 Windbg : which one is better to debug large scale managed application

javascript - 动态添加类到控件时,单击事件不起作用

json - Vue3 : Using dynamically imported JSON in template

SQL 不会打印出我的变量

google-chrome - onblur 事件不适用于谷歌浏览器

javascript - chrome.webrequest.onCompleted 与 chrome.runtime.onMessage 竞赛

google-chrome - 未运行浏览器的 Google Chrome 推送通知

javascript - 如何创建从左下角到右上角的动态对 Angular 线?