vscode调试的launch.json配置字段

launch.json

launch.json是一个调试的配置文件,控制.vscode子文件夹所在的文件夹,其中可以包含多个配置

每个配置由多个属性决定,下面将说明这些属性的作用。

以下三个属性是必须的。

  • type:调试器的类型。不同的语言有不同的调试器类型。
    • "node":调试 Node.js 程序
    • "python":调试 Python 程序
    • "java":调试 Java 程序
    • "pwa-chrome":调试 Chrome 浏览器
  • request:调试的模式,有两种模式可供选择。
    • "launch":启动一个新程序进行调试
    • "attach":附加到已经运行的程序进行调试
  • name:配置的名字,显示在"运行与调试"选项栏。

下面的属性是可选项。

  • persentation:使用order、group和hidden属性来定义调试配置的显示。
  • preLaunchTask:
    • 作用:在启动调试之前执行的任务,通常用于构建或运行初始化脚本。
    • 值:任务的名称(需要在 tasks.json 中定义)。
  • postLaunchTask:
    • 作用:调试完成后执行的任务。
    • 值:任务的名称。
  • internalConsoleOptions:定义调试控制台的显示。
  • serverReadyAction:设置在调试时自动在浏览器打开URL。

此外,调试器插件还支持以下属性。

  • program:要运行的可执行文件或源代码的路径,例如${file}表示当前光标所在的文件的路径。
  • args:要传递给program的参数,数组对象。
  • env:环境变量,键值对对象。
  • cwd:指定调试器的工作目录。默认值是${workspaceFolder}(这里是个变量,变量值请看下面章节: 常用变量(路径等) ),即当前工作区文件夹,对于只打开一个文件夹的情况,这就是指被打开的文件夹。对于工作区有多个文件夹的情况,指的是该.vscode文件夹所在的文件夹,如果使用${workspaceFolder:文件夹名}的格式则可以具体指定文件夹。
  • envFile:
    • 作用:指定包含环境变量的文件路径(通常为 .env 文件)。
    • 值:文件路径。
  • sourceMaps:
    • 作用:启用或禁用源映射(通常用于调试 TypeScript 或其他编译语言)。
    • 值:布尔值。
  • outFiles:
    • 作用:指定源映射文件的位置。
    • 值:文件路径数组。
  • port:要附加到进程的端口。
  • stopOnEntry:是否在程序入口处断点。
  • console:指定程序输出的位置。
  • internalConsole:VS code的调试控制台。
  • integratedTerminal:VS code的集成终端。
  • externalTerminal:系统的终端。

常用变量(路径等)

${workspaceFolder}:当前工作区的根目录。

${file}:当前打开的文件路径。

${fileDirname}:当前打开的文件所在的目录。

${relativeFile}:相对于工作区的文件路径。

${env:VAR_NAME}:环境变量 VAR_NAME 的值。

特定调试器的字段(示例)

  1. Node.js 调试器特有字段

    • program:要调试的 JavaScript 文件路径。

    • runtimeExecutable :指定运行环境(如 node 或自定义路径)。

    • 示例

      json 复制代码
      {
          "type": "node",
          "request": "launch",
          "name": "Launch Program",
          "program": "${workspaceFolder}/app.js",
          "runtimeExecutable": "node"
      }
  2. Python 调试器特有字段

    • pythonPath:Python 解释器路径。

    • module :调试的 Python 模块(如 flask)。

    • 示例

      json 复制代码
      {
          "type": "python",
          "request": "launch",
          "name": "Launch Python Script",
          "program": "${workspaceFolder}/main.py",
          "pythonPath": "/usr/bin/python3"
      }
  3. Chrome 调试器特有字段

    • url:要调试的页面 URL。

    • webRoot:代码所在的根目录,用于映射源代码。

    • 示例

      json 复制代码
      {
          "type": "pwa-chrome",
          "request": "launch",
          "name": "Launch Chrome",
          "url": "http://localhost:3000",
          "webRoot": "${workspaceFolder}"
      }

示例完整配置

以下是一个调试 Node.js 项目的 launch.json 示例:

json 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Node.js App",
            "program": "${workspaceFolder}/app.js",
            "cwd": "${workspaceFolder}",
            "env": {
                "NODE_ENV": "development"
            },
            "sourceMaps": true,
            "outFiles": [
                "${workspaceFolder}/dist/**/*.js"
            ]
        }
    ]
}
相关推荐
小哀24 分钟前
🌸 入职写了一个月全栈next.js 感想
前端·后端·ai编程
ziwu8 分钟前
【民族服饰识别系统】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积网络+resnet50算法
人工智能·后端·图像识别
程序员Easy哥9 分钟前
ID生成器第一讲:原理和常见几种生成器
后端
q***735510 分钟前
SpringBoot中使用TraceId进行日志追踪
spring boot·后端·状态模式
Penge66616 分钟前
Elasticsearch 跳表(Skip List):有序结果合并的 “性能电梯”
后端
Penge66628 分钟前
Elasticsearch BKD 树与 PointRangeQuery:为何数值查询会有性能瓶颈
后端
木木一直在哭泣40 分钟前
【收藏级】Java Stream.reduce 全面解析:从零到通透(原理图 + 实战 + 最佳实践)
后端
Penge66640 分钟前
Elasticsearch Filter 缓存:Bitset 如何让查询速度飙升
后端
用户849137175471641 分钟前
ThreadLocal 源码深度解析:JDK 设计者的“妥协”与“智慧”
java·后端
木木一直在哭泣43 分钟前
Java Stream.filter 全面解析:定义、原理与最常见使用场景
后端