Как отладить дочерний узел.Процесс JS в коде Visual Studio?
Как отладить дочерний узел.Процесс JS в VS-коде?
Вот пример кода, который я пытаюсь отладить:
var spawn = require('child_process').spawn;
var scriptPath = './child-script.js';
var runner_ = spawn('node', [scriptPath]);
3 ответа:
Вы можете легко добавить новую конфигурацию запуска для запуска.json, который позволяет подключаться к работающему экземпляру узла с определенным портом:
{ "name": "Attach to Node", "type": "node", "address": "localhost", "port": 5870, }
Просто убедитесь, что вы разветвляете/порождаете процесс узла с аргументом --debug или --debug-brk.
Найдите этот модуль npm child-process-debug.
Я создал 2 отдельные конфигурации запуска в vscode:
Один для главного процесса, другой для дочернего процесса
{ "name": "Attach", "type": "node", "request": "attach", "port": 5858, "address": "localhost", "restart": false, "sourceMaps": false, "outFiles": [], "localRoot": "${workspaceRoot}", "remoteRoot": null }, { "name": "Attach child", "type": "node", "request": "attach", "port": 5859, "address": "localhost", "restart": false, "sourceMaps": false, "outFiles": [], "localRoot": "${workspaceRoot}", "remoteRoot": null }
Рабочий процесс следующим образом:
- запустите процесс главного узла с помощью переключателя командной строки
--debug
$ node --debug master.js
- присоединить к
master.js
узловому процессу с помощьюAttach
через панель отладки- поместите точку останова в процесс
child.js
- быстро отсоединить от процесса
main
и присоединить кchild
процессу с использованиемAttach child
Для целей отладки вы можете задержать отправку сообщений между процессами с помощью
setTimeout
// master.js var child = child_process.fork(__dirname + './child.js') setTimeout(function() { child.send('...') }, 5000)