У меня есть приложение WinJS-UWP, в котором я использую TypeScript 2.5. Я только что обновился с VS2015 до VS2017. Когда я хочу отлаживать свое WinJS-UWP-приложение, точки останова внутри моих .ts-файлов не отмечаются, потому что SourceMap не читается должным образом. Я не менял никаких настроек проекта.
В выводе я получаю следующее сообщение:
Ошибка чтения SourceMap ms-appx://8d7814f6-7286-4475-8ed8-be1c489c2253/js/main.js.map: префикс URI не распознан. Мои параметры компилятора:
"compilerOptions": {
"target": "es5",
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
}
Минимальная и целевая версия приложения: 10.0.14393.0
Нужно ли мне что-то еще настраивать в VS2017?
EDIT:
Шаги для воспроизведения:
- Создайте новое WinJS-приложение UWP в VS 17 с минимальной и целевой версией:
10.0.14393.0
- Удалите js\main.js
- Добавьте файл main.ts в папку js
- Создайте папку tslib и вставьте внутрь winjs.d.ts [например, из DefinetlyTyped]
- Добавьте следующий код в main.ts:
/// <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);
});
- Добавьте новый tsconfig.json из шаблона VS17.
- Запустите приложение с конфигурацией AnyCPU.
Ожидаемый результат: внутри приложения вы увидите текст:
Содержимое здесь!
Привет со стороны TypeScript
В выводе вы видите эти два сообщения:
«WWAHost.exe» (сценарий): загружен «Код сценария (MSAppHost/3.0)».
SourceMap ms-appx://32fb2864-03cf-4387-8a05-6c65a66c5a48/js/main.js.map не удалось прочитать: префикс URI не распознан..
EDIT 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-Settings:
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
для нескольких других опций, так что удалять его нельзя!
"sourceRoot":"F:/WorkingSample/2017_10/2017_1030/TestTSWinJS/TestTSWinJS/"
. Как правило, это значение будет автоматически генерироваться Visual Studio. Итак, вам может потребоваться проверить настройки вашей визуальной студии или другие вещи. - person Xie Steven   schedule 30.10.2017