Может ли отладка кода VS использовать sourceMapPathOverrides вместе с serverReadyAction / debugWith Chrome? - PullRequest
0 голосов
/ 27 января 2020

При отладке кода сервера веб-приложений в VS Code (. NET Core в моем случае), есть опция конфигурации launch.json, которая называется serverReadyAction для открытия веб-браузера, например:

"serverReadyAction": {
    "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"   ,
    "action": "openExternally"
}

openExternally - это одно из возможных действий, а debugWithChrome - другое. Последний запускает сеанс отладки Chrome, используя отладчик для расширения Chrome. В этом режиме можно добавить свойство webRoot, которое передается сеансу отладки Chrome:

"serverReadyAction": {
    "action": "debugWithChrome",
    "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"   ,
    "webRoot": "${workspaceRoot}/wwwroot"
}

Приятно, что теперь я могу нажимать точки останова в моих C# и моя клиентская часть JavaScript - прекрасно!

Однако мой JS фактически скомпилирован из TypeScript и связан (в данном случае с Webpack). Обычно при использовании отладчика для расширения Chrome я могу рассказать о sourceMapPathOverrides. Типичная конфигурация:

{
    "type": "chrome",
    "request": "launch",
    "name": "Launch Chrome",
    "url": "https://localhost:5001",
    "webRoot": "${workspaceRoot}/src",
    "sourceMapPathOverrides": {
        "webpack:///./src/*": "${webRoot}/*"
    }
}

Мой вопрос: возможно ли это при использовании сеанса отладки Chrome, созданного serverReadyAction / debugWithChrome. Это не сразу видно.

1 Ответ

0 голосов
/ 27 января 2020

Я не нашел способа передать эту опцию, но я видел, что расширение отладчика Chrome имеет для него свойства по умолчанию:

 "sourceMapPathOverrides": {
                "type": "object",
                "description": "%chrome.sourceMapPathOverrides.description%",
                "default": {
                  "webpack:///./*": "${webRoot}/*",
                  "webpack:///src/*": "${webRoot}/*",
                  "webpack:///*": "*",
                  "webpack:///./~/*": "${webRoot}/node_modules/*",
                  "meteor://?app/*": "${webRoot}/*"
                }
              },

https://github.com/microsoft/vscode-chrome-debug/blob/3771e9343c0776be19db6ba4653a7e4e7fdb96a6/package.json

Так что я могу отлаживать свой TypeScript, если мои файлы проекта совпадают с одним из них.

...