Как отладить дочерний узел.Процесс 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)