我正在尝试让 TypeScript 源代码调试在 Chrome 中工作,但我遇到了两个特定且可能相关的问题。
首先是由 TypeScript/WebEssentials 编译器生成的注释应该识别源映射文件的位置,如下所示:
//sourceMappingUrl=MySourceFile.js.map
但 Chrome 不会读取该文件。似乎期望评论将如下所示:
//@ sourceMappingUrl=MySourceFile.js.map
如果我手动将评论更改为该评论并刷新我的页面,那么对所有 .ts 文件的引用就会神奇地显示为 Chrome 开发人员工具中的源代码。
但是,这导致了我的第二个问题,因为文件实际上并没有被加载。Chrome应该尝试下载的 .ts 源文件是 .ts http://localhost/MySourceFile.ts
,但它实际尝试下载的是.ts 源文件http://localhost/C:/source/web/MySourceFile.ts
。这是有道理的,因为 MySourceFile.js.map 的打开属性如下所示:
{"version":3,"file":"tmp1523.tmp","sources":["C:/source/web/MySourceFile.ts"
但这显然不适用于 Chrome,因为它将源地图位置解释为完全相对的,并且 IIS(非常正确)不会提供任何看起来像http://localhost/C:/source/web/MySourceFile.ts
.
那么,对于这两个问题,是 Chrome 还是 TypeScript source-map 功能做错了呢?这样做的推荐方法是什么?
我正在使用 Chrome 25.0.1323.1 dev-m,TypeScript 0.8.1 和 WebEssentials 1.8.5。