У меня возникла проблема с отладкой приложения Angular с помощью кода Visual Studio и отладчика Chrome. Когда я запускаю сеанс отладки, окно браузера Chrome не открывается, пока я вручную не выйду из задачи предварительного запуска. Такое поведение не позволяет мне беспрепятственно запустить процесс отладки. Вот подробности:
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"sourceMapPathOverrides": {
"webpack:/*": "${webRoot}/*",
"/./*": "${webRoot}/*",
"/src/*": "${webRoot}/*",
"/*": "*",
"/./~/*": "${webRoot}/node_modules/*"
}
}
]
}
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"presentation": {
"focus": true,
"panel": "dedicated"
},
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": {
"owner": "typescript",
"source": "ts",
"applyTo": "closedDocuments",
"fileLocation": ["relative", "${cwd}"],
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "Compiled |Failed to compile."
}
}
}
}
]
}
Окно браузера Chrome должно открыться автоматически, как только ngserv завершит первоначальную компиляцию и начнет отслеживать изменения.
Окно браузера Chrome не откроется, пока я вручную не выйду из задачи ng serve предварительного запуска.
Что я пробовал:
Как я могу настроить VS Code и отладчик Chrome так, чтобы они автоматически открывали окно Chrome, как только ngserv завершит первоначальную компиляцию и перейдет в режим просмотра, не требуя ручного вмешательства? Это немного странно, поскольку я скопировал и вставил точный запуск и задачи из приложения Angular, где работает отладка.
Любая помощь или предложения будут очень признательны!





С помощью этого вопроса вопроса и документации я смог найти проблему.
Я обновил значение problemMatcher.background.endsPattern до:
"endsPattern": "Watch mode enabled. Watching for file changes..."
И теперь preLaunchTask знает, когда открывать окно отладчика Chrome. Я считаю, что это как-то связано с сообщением о режиме просмотра Angular, поэтому его необходимо обновить.