Ниже приведен отладчик 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
порт, используемый для отладки -
address
TCP/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"]
Без запятой нельзя)