Не удается найти процесс узла с помощью отладчика VSCode

Я тестирую отладчик узлов VS Code, но не могу найти никаких узловых процессов при попытке подключиться к запущенному процессу.

Это мой файл launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "attach",
            "name": "Attach by Process ID",
            "processId": "${command:PickProcess}"
        }
    ]
}

содержимое моего файла package.json:

  "scripts": {
    "start": "node --inspect=0.0.0.0:9229 ./bin/www"
  }

После запуска процесса с помощью npm start я нажимаю start debug, и список процессов узла следующий:

  • 1 sssd_pam
  • 1 sssd_nss
  • 1 sssd_be

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

Почему я не вижу ни один из моих запущенных процессов узла в присоединении процесса VSCode?

P.s. Я внимательно слежу за этим руководством по отладке Node.js с помощью VS Code.


person Michael    schedule 30.11.2018    source источник
comment
Разместите скрипты в вашем package.json файле, чтобы мы могли помочь. Возможно, возникла проблема со сценарием запуска NPM.   -  person Luís Brito    schedule 30.11.2018
comment
Отредактировал сообщение, чтобы включить это.   -  person Michael    schedule 01.12.2018
comment
После добавления --inspect = 0.0.0.0: 9229 в скрипт npm он теперь работает. Спасибо!   -  person Michael    schedule 01.12.2018
comment
Рад, что смог помочь!   -  person Luís Brito    schedule 02.12.2018


Ответы (1)


Вы запускаете NodeJS в режиме отладки внутри npm start? Вам нужно использовать флаг --inspect. Без этого флага интерпретатор NodeJS не откроет порт отладки для VSCode для подключения.

См .: https://nodejs.org/en/docs/guides/debugging-getting-started/

Другой вариант - подключиться с использованием определения порта. Обычно я делаю что-то вроде этого в launch.json:

{
  "type": "node",
  "request": "attach",
  "name": "Attach",
  "port": 9229,
  "restart": true,
  "sourceMaps": true,
  "protocol": "inspector"
}

Затем я запускаю процесс NodeJS как: node --inspect=0.0.0.0:9229 start.js

person Luís Brito    schedule 30.11.2018