Отладчик VS Code Chrome не открывает окно до завершения предзапуска в проекте Angular

У меня возникла проблема с отладкой приложения Angular с помощью кода Visual Studio и отладчика Chrome. Когда я запускаю сеанс отладки, окно браузера Chrome не открывается, пока я вручную не выйду из задачи предварительного запуска. Такое поведение не позволяет мне беспрепятственно запустить процесс отладки. Вот подробности:

Среда:

  • Код Visual Studio: 1.89.1
  • Угловой: 18.0.0
  • Хром: 124.0.6367.119
  • ОС: Mac Sonoma 14.2.1

запуск.json:

{
    "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/*"
            }
        }
    ]
}

задачи.json

{
  "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."
          }
        }
      }
    }
  ]
}

Действия по воспроизведению:

  1. Откройте проект Angular в VS Code.
  2. Нажмите F5, чтобы начать отладку сессия.
  3. Обратите внимание, что окно Chrome не откроется до тех пор, пока предстартовая задача (ngserve) закрывается вручную.

Ожидаемое поведение:

Окно браузера Chrome должно открыться автоматически, как только ngserv завершит первоначальную компиляцию и начнет отслеживать изменения.

Фактическое поведение:

Окно браузера Chrome не откроется, пока я вручную не выйду из задачи ng serve предварительного запуска.

Что я пробовал:

  • Убедитесь, что для флага isBackground установлено значение true в файле Tasks.json.
  • Проверка шаблонов сопоставления проблем, чтобы убедиться в их правильности.
  • Проверка того, что ngserv успешно работает с терминала

Как я могу настроить VS Code и отладчик Chrome так, чтобы они автоматически открывали окно Chrome, как только ngserv завершит первоначальную компиляцию и перейдет в режим просмотра, не требуя ручного вмешательства? Это немного странно, поскольку я скопировал и вставил точный запуск и задачи из приложения Angular, где работает отладка.

Любая помощь или предложения будут очень признательны!

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

С помощью этого вопроса вопроса и документации я смог найти проблему.

Я обновил значение problemMatcher.background.endsPattern до:

"endsPattern": "Watch mode enabled. Watching for file changes..."

И теперь preLaunchTask знает, когда открывать окно отладчика Chrome. Я считаю, что это как-то связано с сообщением о режиме просмотра Angular, поэтому его необходимо обновить.

Другие вопросы по теме