Ошибка чтения SourceMap

У меня есть приложение 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:
Шаги для воспроизведения:

  1. Создайте новое WinJS-приложение UWP в VS 17 с минимальной и целевой версией: 10.0.14393.0
  2. Удалите js\main.js
  3. Добавьте файл main.ts в папку js
  4. Создайте папку tslib и вставьте внутрь winjs.d.ts [например, из DefinetlyTyped]
  5. Добавьте следующий код в 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);
});

  1. Добавьте новый tsconfig.json из шаблона VS17.
  2. Запустите приложение с конфигурацией 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 для нескольких других опций, так что удалять его нельзя!


person TheTanic    schedule 23.10.2017    source источник
comment
Пожалуйста, попробуйте удалить SourceMap и перестроить его снова, чтобы увидеть, сталкиваетесь ли вы с этой проблемой.   -  person Xie Steven    schedule 25.10.2017
comment
@XavierXie-MSFTSИзвините за поздний ответ: я уже пробовал это. Есть еще та же проблема   -  person TheTanic    schedule 27.10.2017
comment
Если да, загрузите минимально воспроизводимый пример. Мне нужно, чтобы помочь вам диагностировать эту проблему.   -  person Xie Steven    schedule 27.10.2017
comment
@XavierXie-MSFT Смотрите мое редактирование, чтобы воспроизвести проблему.   -  person TheTanic    schedule 27.10.2017
comment
Я хочу проверить вашу SourceMap. Пожалуйста, разместите это здесь.   -  person Xie Steven    schedule 27.10.2017
comment
@XavierXie-MSFT Смотрите мои изменения   -  person TheTanic    schedule 27.10.2017
comment
Значение sourceRoot не должно быть пустым. Например, "sourceRoot":"F:/WorkingSample/2017_10/2017_1030/TestTSWinJS/TestTSWinJS/". Как правило, это значение будет автоматически генерироваться Visual Studio. Итак, вам может потребоваться проверить настройки вашей визуальной студии или другие вещи.   -  person Xie Steven    schedule 30.10.2017
comment
@XavierXie-MSFT Для параметра TypescriptBuild-Setting для исходной карты установлено значение: $(MSBuildProjectDirectory). Это значение по умолчанию. То же самое в VS15, где это работает   -  person TheTanic    schedule 02.11.2017
comment
Это хорошо работало в VS 15. Я думаю, что эта проблема больше связана с VS 2017. Сначала вы можете попробовать переустановить SDK TypeScript для Visual Studio 2017. После этого, если вы все еще сталкиваетесь с этой проблемой, вам может потребоваться восстановить VS 2017.   -  person Xie Steven    schedule 02.11.2017
comment
@XavierXie-MSFT Я попробую эти шаги... Но у нас одна и та же проблема на каждом ПК в офисе.   -  person TheTanic    schedule 02.11.2017
comment
@ XavierXie-MSFT Я следовал вашим шагам ... Тот же результат. Посмотрите мои правки пожалуйста   -  person TheTanic    schedule 02.11.2017


Ответы (1)


Я нашел обходной путь, который устраняет проблему на данный момент. Я не знаю, почему это работает, но если вы добавите строку:

"mapRoot": "js/"

он работает правильно.

Это работает только для настройки каталога по умолчанию!

person TheTanic    schedule 02.11.2017