«Указанная задача не может быть отслежена» при попытке запустить сервер с задачей перед отладкой - PullRequest
0 голосов
/ 23 декабря 2018

В моем launch.json есть следующая отладочная конфигурация:

{
    "type": "node",
    "request": "attach",
    "preLaunchTask": "npm: start",
    "name": "Attach",
    "port": 9090
}

Это задание, определенное в tasks.json:

{
    "type": "npm",
    "script": "start",
    "isBackground": true
}

npm start делает это: node --inspect=9090 ./src/server.js

Если я удаляю preLaunchTask конфигурации отладки, запускаю задачу вручную, затем запускаю сеанс отладки, все работает нормально (сеанс отладки присоединяет процесс узла).

Тем не менее, с preLaunchTask я получаю эту ошибку ~ 10 секунд после запуска отладки: «Указанная задача не может быть отслежена».

Кажется, что, возможно, задача нуждается в сопоставителе проблем, когда она установлена ​​вisBackground, поэтому я также попытался выполнить эту конфигурацию задач безуспешно:

{
    "type": "npm",
    "script": "start",
    "isBackground": true,
    "problemMatcher": {
        "background": {
            "activeOnStart": true,
            "beginsPattern": "^.*Using environment.*",
            "endsPattern": "^.*listening.*"
        }
    }
}

Вывод npm: start

5:13:12 PM web.1 |  Using environment: production
5:13:12 PM web.1 |  Already up to date
5:13:12 PM web.1 |  Debugger listening on ws://127.0.0.1:9090/22d582b8-eade-4b27-95f4-e36ad1718283
5:13:12 PM web.1 |  For help see https://nodejs.org/en/docs/inspector

Нужно ли сопоставление проблем?Если так, то почему?Когда я запускаю задачу сама, она работает нормально.У меня нет проблем, чтобы сообщить ...

1 Ответ

0 голосов
/ 02 августа 2019

Поскольку задача долго выполняется, Vscode выдаст всплывающее предупреждение после ожидания в течение 10 секунд, сообщая, что указанная задача не может быть отслежена.Вы все еще можете отладить, нажав кнопку «Отладка в любом случае».Но чтобы избежать этого всплывающего окна, мы определяем шаблон начала / конца.

Фоновое поле problemMatcher определяет, когда считается, что задача начинается и заканчивается, как показано в выводе консоли.Вы должны убедиться, что beginPattern и endPattern совпадают с тем, что вы на самом деле видите в выводе терминала.Если вы скопировали пример из другого места, он, вероятно, не соответствует фактическому выводу терминала.

Я изменил свои определения шаблонов на:

"background": {
   "activeOnStart": false,
   "beginsPattern": "^.*building.*",
   "endsPattern": "^.*Compiled successfully.*"
} 

У меня была та же проблема, что и у вас, пока я не нашел это сообщение в блоге и исправлены шаблоны в tasks.json.

Также проверьте шаблоны, используемые в этом рецепте .

PS: образец, которыйЯ использовал «Live Development Server is listening» в beginPattern.Но этот текст не отображается до тех пор, пока не появится всплывающее окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...