我有一个WinJS-UWP-Application,我使用的是TypeScript 2.5。我刚从VS2015升级到VS2017。当我想调试我的WinJS-UWP-Application时,我的.ts-Files中的断点没有被注意到,因为SourceMap没有被正确读取。我没有改变任何项目配置。
在输出中,我收到此消息:
SourceMap ms-appx://8d7814f6-7286-4475-8ed8-be1c489c2253/js/main.js.map read 失败:无法识别URI前缀.. 我的CompilerOptions是:
"compilerOptions": {
"target": "es5",
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
}
应用程序的最小和目标版本为:10.0.14393.0
我是否需要在VS2017中设置其他任何内容?
修改
重现的步骤:
10.0.14393.0
/// <reference path="../tslib/winjs.d.ts"/>
WinJS.UI.processAll().then(() => {
let div: HTMLDivElement = document.createElement("div");
let label: HTMLLabelElement = document.createElement("label");
label.textContent = "Hello from the TypeScript-Side";
div.appendChild(label);
document.body.appendChild(div);
});
预期结果:
在应用程序内部,您会看到文字:
内容就在这里!
来自TypeScript-Side的Hello:
在输出中,您会看到以下两条消息:
'WWAHost.exe'(脚本):加载'脚本代码(MSAppHost / 3.0)'。
SourceMap ms-appx://32fb2864-03cf-4387-8a05-6c65a66c5a48/js/main.js.map读取失败:无法识别URI前缀..
编辑2: main.js.map的内容:
{
"version": 3,
"file": "main.js",
"sourceRoot": "",
"sources": [ "main.ts" ],
"names": [],
"mappings": "AAAA,2CAA2C;AAE3C,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;IACvB,IAAI,GAAG,GAAmB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,KAAK,GAAqB,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9D,KAAK,CAAC,WAAW,GAAG,gCAAgC,CAAC;IACrD,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC"
}
EDIT3:
TypescriptBuild-设置:
TypeScript version: 2.5
Compile on save: Yes
Allow implicit 'any' types: Yes
Keep comments in JavaScript output: Yes
Generate declaration files: No
Generate source maps: Yes
Specify root directory of source maps: $(MSBuildProjectDirectory)
Specify root directory of TypeScript files: $(MSBuildProjectDirectory)
Emit on error: No
如果删除tsconfig.json
,则会正确创建源地图。但我需要tsconfig.json
以获得其他一些选项,因此删除它不是一种选择!
答案 0 :(得分:1)
我找到了解决此问题的解决方法。我不知道为什么会这样,但是如果你添加一行:
"mapRoot": "js/"
它可以正常工作。
这仅适用于默认目录设置!