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"
            ]
        }
    ]
}
相关推荐
颜淡慕潇15 分钟前
【K8S系列】深入解析 Kubernetes 中的 Deployment
后端·云原生·容器·kubernetes
Iced_Sheep1 小时前
Spring @Transactional 你真的会用吗???
后端·spring
黄昏_1 小时前
在Springboot项目中实现将文件上传至阿里云 OSS
java·spring boot·后端·阿里云
吾日三省吾码2 小时前
JVM-类文件结构
后端
机器之心2 小时前
吴恩达出手,开源最新Python包,一个接口调用OpenAI等模型
人工智能·后端
树獭叔叔3 小时前
2K字速通MongoDB
数据库·后端·mongodb
九转成圣3 小时前
Spring Boot 同时接受文件和实体及 Postman 测试实战
spring boot·后端·postman
南山十一少4 小时前
Spring Boot 实战:基于 Validation 注解实现分层数据校验与校验异常拦截器统一返回处理
java·前端·spring boot·后端
餘yuqn4 小时前
Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录
spring boot·后端