Неподтвержденная точка останова в коде Visual Studio с отладчиком Chrome - PullRequest
0 голосов
/ 13 мая 2019

Извините, если это дубликат, но я просмотрел много уже опубликованных ответов и все еще не могу найти решение.

Я работаю над устаревшим приложением AngularJS, которое было частично преобразовано в Typescript. Источники в C:\Users\myname\dev\project\client\src. Это моя launch.json запись:

{
    "type": "chrome",
    "request": "attach",
    "name": "Attach to Chrome",
    "port": 9222,
    "url": "http://localhost:3000/#/home",
    "webRoot": "${workspaceFolder}/client/src",
    "sourceMaps": true,
    "sourceMapPathOverrides": {
        "webpack:///*": "${webRoot}/*"
    },
    "trace": true

}

Когда я пытаюсь установить точку останова в VS Code, он говорит «Непроверенная точка останова». Типичный журнал в файле трассировки для этого действия выглядит так:

[13:43:13.020 UTC] From client: setBreakpoints({"source":{"name":"some-page.controller.ts","path":"C:\\Users\\username\\dev\\project\\client\\src\\some-subfolder\\some-page.controller.ts"},"lines":[77],"breakpoints":[{"line":77}],"sourceModified":false})
[13:43:13.020 UTC] To client: {"seq":0,"type":"event","event":"output","body":{"category":"telemetry","output":"setBreakpointsRequest","data":{"Versions.DebugAdapterCore":"6.7.45","Versions.DebugAdapter":"4.11.3","Versions.Target.CRDPVersion":"1.3","Versions.Target.Revision":"@518a41c1fa7ce1c8bb5e22346e82e42b4d76a96f","Versions.Target.UserAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36","Versions.Target.V8":"7.4.288.26","Versions.Target.Project":"Chrome","Versions.Target.Version":"74.0.3729.131","fileExt":".ts"}}}
[13:43:13.020 UTC] To client: {"seq":0,"type":"response","request_seq":34,"command":"setBreakpoints","success":true,"body":{"breakpoints":[{"verified":false,"line":77,"message":"Breakpoint ignored because generated code not found (source map problem?).","id":1006}]}}

Chrome DevTools может найти исходную карту на webpack://client/src/some-subfolder\\some-page.controller.ts и правильно устанавливает точку останова. При достижении этой точки останова VS Code загружает файл, который идентифицируется как C:\Users\username\dev\project\client\src\client\src\some-subfolder\some-page.controller.ts. \client\src часть пути дублируется, но это местоположение не существует.

Если я затем установил точку останова в VS Code в файле с неверным путем, он сработает, и приложение сломается при попадании в него. Конечно, я не могу сделать это для любого другого файла, потому что путь, по которому VS Code считает, что он нашел, не существует.

Я безуспешно пробовал различные комбинации webRoot и sourceMapPathOverrides и убедился, что VS Code запускается в папке проекта. Кто-нибудь может предложить решение?

Редактировать Я также попытался удалить запись sourceMapPathOverrides безуспешно. Когда я достигаю точки останова, установленной в DevTools, VS Code идентифицирует файл как 1521, который указан в разделе «Загруженные сценарии» в webpack-internal. Но когда я открываю любой из этих пронумерованных сценариев в VS Code (а не путем нажатия на точку останова), я вижу сгенерированный Javascript, а не отображенный Typescript.

1 Ответ

0 голосов
/ 13 мая 2019

решаемая. Он корректно работает со следующей (намного более простой) конфигурацией:

"webRoot": "${workspaceFolder}/",
"sourceMapPathOverrides": {
    "webpack:///*": "${webRoot}/*"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...