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"
            ]
        }
    ]
}
相关推荐
逸风尊者2 分钟前
开发也能看懂的大模型:降维和度量学习
后端
brzhang15 分钟前
宝藏发现:Sim Studio,一款让AI工作流搭建变简单的开源利器
前端·后端·github
这里有鱼汤17 分钟前
出大事了!0.1 + 0.2 居然不等于 0.3,Python我再也不敢用了…
后端·python
学了就忘27 分钟前
Axios 传参与 Spring Boot 接收参数完全指南
java·spring boot·后端·vue
这里有鱼汤31 分钟前
我用Python做了个“灵犀剪贴”:可以自动记录复制的文本,然后保存到本地
后端·python
冼紫菜37 分钟前
[特殊字符] SpringCloud项目中使用OpenFeign进行微服务远程调用详解(含连接池与日志配置)
java·后端·spring cloud
风象南1 小时前
SpringBoot中4种登录验证码实现方案
java·spring boot·后端
why15110 小时前
腾讯(QQ浏览器)后端开发
开发语言·后端·golang
浪裡遊10 小时前
跨域问题(Cross-Origin Problem)
linux·前端·vue.js·后端·https·sprint
声声codeGrandMaster10 小时前
django之优化分页功能(利用参数共存及封装来实现)
数据库·后端·python·django