Ниже приведен отладчик node.js для vscode.launch.jsonДетали конфигурации:
Конфигурация запуска должна установить тип запроса, атрибутrequest, разделен наlaunch(начало) иattach(Дополнительно) два вида, см. следующий пример:
{
"version": "0.2.0",
"configurations": [
{
...
"request": "launch", //请求类型为启动
},
{
...
"request": "attach", //请求类型为附加
}
]
}
Нижеlaunchа такжеattachСвойства, общие для типов:
-
protocolУстановить протокол отладкиautoПопытка автоматически определить протокол, используемый целевой средой выполнения.inspectorНовый протокол отладчика V8, который решает большинство проблем с устаревшими версиями, версиями узлов >= 6.3 и версиями Electron >= 1.7.4.legacyОригинальный протокол отладчика v8, версии узлов -
portпорт, используемый для отладки -
addressTCP/IP-адрес для удаленной отладки -
localRootЛокальный адрес, сопоставленный во время удаленной отладки -
remoteRootАдрес удаленного каталога для удаленной отладки -
sourceMapsПо умолчанию истинно -
outFilesИспользуется для указания местоположения sourceMaps, когда файл карты не находится в том же каталоге, что и файл js. -
restartОтладка автоматического перезапуска -
timeoutНастройте время ожидания автоматического прикрепления -
stopOnEntryАвтоматическая точка останова на первую строку кода -
smartStepАвтоматически пропускать код, не сопоставленный с исходным кодом -
skipFiles:[]String, указывает код для пропуска одношаговой отладки
"skipFiles": [
"${workspaceFolder}/node_modules/**/*.js", //跳过node_modules
"${workspaceFolder}/lib/**/*.js",//跳过lib
"<node_internals>/**/*.js"//跳过node核心模块
]
-
traceВключить диагностический вывод
Следующее относится к конкретному типуlaunch(запуск) свойства конфигурации:
-
programУкажите адрес файла записи отладки -
args :[]StringПараметры, передаваемые программе, можно найти вprocess.argvполучать -
cwdУкажите каталог, в котором программа начинает отладку, очень полезно, когда каталог запуска vscode не является корневым каталогом проекта и отлаживает сценарии npm. -
runtimeExecutableУстановите путь к исполняемому файлу среды выполнения, по умолчаниюnodeМогут быть другие исполнительные программы, такие какnpm、nodemon -
runtimeArgsАргументы, передаваемые в исполняемый файл среды выполнения, например:
{
"type": "node",
"request": "launch",
"name": "npm launch app",
"args":["a"],
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"app",
"b"
],
"port": 6666
}
параметры печати можно найтиargs 、runtimeArgsпередаются в программу, ноruntimeArgsАргументы будут следовать за исполняемым файлом
-
runtimeVersionУстанавливает версию исполняемой программы во время выполнения, если используетсяnvm, вы можете переключить версию node.js -
envДобавьте дополнительные переменные среды -
envFileпеременные среды загрузки файлов -
consoleТерминал конфигурации может быть внешним терминалом или внутренним интегрированным терминалом, значение по умолчаниюinternalConsole -
outputCapture- Если установлено значение std, вывод процесса stdout/stderr будет отображаться в консоли отладки вместо прослушивания вывода на порт отладки. Это полезно для программ или библиотек протоколирования, которые записывают напрямую в потоки stdout/stderr вместо использования API-интерфейсов console.*. -
autoAttachChildProcessesОтслеживает все подпроцедуры отлаживаемой программы и автоматически присоединяется к подпроцедурам, запущенным в режиме отладки.
Следующее относится к конкретному типуattach(Дополнительные) свойства конфигурации:
-
processIdУкажите идентификатор процесса nodejs, так как он будет меняться при каждом запуске, передайте"${command:PickProcess}"
вопросы:
1. Как отладить, если используется символическая ссылка?
Параметры передачи:
{
"runtimeArgs": ["--preserve-symlinks"]
}
Если основной скрипт также находится в пути символической ссылки, вам нужно передать другой параметр"--preserve-symlinks-main", поддерживаемые версииNode 10+.
2. Как отлаживать модули ECMAScript?
При использовании esm или pass--experimental-modulesВ Node.js для использования модулей ECMAScript вы можете передать эти параметры черезruntimeArgsАтрибуты:
-
"runtimeArgs" : ["--experimental-modules"]- с использованием Node v8.5.0+Поддержка экспериментального модуля ECMAScript -
"runtimeArgs" : ["-r", "esm"]-использоватьзагрузчик модулей esm ES(осторожность,["-r esm"]Без запятой нельзя)