Сведения о конфигурации VSCode launch.json

Visual Studio Code

исходный адрес vscode

Ниже приведен отладчик 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Аргументы будут следовать за исполняемым файлом

image.png

  • 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Атрибуты: