lunch.json选项
- 必选字段
type: 调试器类型。这里是Node(内置的调试器),如果装了Go和PHP扩展对应的type分别为 go 和 php
request: 请求类型,目前只支持launch 和attach。launch就是以debug模式启动调试,attach就是附加在已启动的进程开启debug模式并调试
name:下来菜单显示的名字
- 可选字段
program:可执行文件或者调试器需要运行的文件(launch)
args:要传递给调试程序的参数(launch)
env:环境变量(launch)
cwd:当前执行目录(launch)
address: IP地址(launch & attach)
port: 端口号(launch & attach)
skipFiles: 想要忽略的文件,数组类型(launch & attach)
processId: 进程PID(attach)
- 目录变量有:
${workspaceRoot}:当前打开工程的路径
${file}:当前打开文件的路径
${fileBasename}:当前打开文件的名字,包含后缀名
${fileDirname}:当前打开文件所在的文件夹的路径
${fileExtname}:当前打开文件的后缀名
${cwd}:当前执行目录
调试技巧
-
条件断点
当表达式计算结果为true时中断,满足条件时候才会断点。
表达式 skipFiles 在调试时文件要跳过一组glob模式
我们在单步调试时一般会进入node_modules
目录,但是我们一般往往只想调试我们的项目代码,所以这个时候可以通过配置skipFiles来过来详细的官方文档参考
skipFiles: [
"${workspaceFolder}/node_modules/**/*.js",
"${workspaceFolder}/lib/**/*.js"
]
- 自动重启
通过添加配合可以实现修改代码保存后自动重启调试,比如结合nodemon
一起使用。
参数说明:
(1) runtimeExecutable: 用什么命令来执行app.js ,这里设置为nodemon,默认是node
(2) restart:设置为true,修改代码保存后会自动重启调试
(3) console:当点击停止按钮或者修改代码保存之后自动重启调试,但是nodemon仍然在运行, log无法打印到终端。通过设置console为integratedTerminal
可以解决这个问题的。此时VS Code 终端将会打印nodemon的log。
mocha debugger
在看优秀的源代码时候,文档不一定写的很清楚,但是提供了相应的测试代码。用来debugger
使用下面配置来测试mocha的测试文件
{
"version": "0.2.0",
"configurations": [
// debugger 所有文件
{
"type": "node",
"request": "launch",
"name": "Mocha All",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"--timeout",
"999999",
"--colors",
"${workspaceFolder}/test"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
// debugger 当前文件
{
"type": "node",
"request": "launch",
"name": "Mocha Current File",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"args": [
"--timeout",
"999999",
"--colors",
"${file}"
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}