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 的值。
特定调试器的字段(示例)
-
Node.js 调试器特有字段
-
program
:要调试的 JavaScript 文件路径。 -
runtimeExecutable
:指定运行环境(如node
或自定义路径)。 -
示例 :
json{ "type": "node", "request": "launch", "name": "Launch Program", "program": "${workspaceFolder}/app.js", "runtimeExecutable": "node" }
-
-
Python 调试器特有字段
-
pythonPath
:Python 解释器路径。 -
module
:调试的 Python 模块(如flask
)。 -
示例 :
json{ "type": "python", "request": "launch", "name": "Launch Python Script", "program": "${workspaceFolder}/main.py", "pythonPath": "/usr/bin/python3" }
-
-
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"
]
}
]
}