梗概:
位于.vscode/launch.json
生成预配置的调试文件:
1. 如果还没有launch.json文件
- 点击调试栏目
- 点击创建调试配置文件
- 按照指引点击即可
2. 如果已经存在了launch.json文件
- 进入到
launch.json文件中 - 点击右下角的添加配置项按钮
- 选择对应的预制项
配置项详细说明:
1. 公共属性
name:debug命令的名称,在 debug 下拉窗口显示type: 调试类型,根据语言选择,JavaScript一般为noderequest: 调试启动类型:launch: 就是以debug模式启动调试;attach: 就是附加到已经启动的进程开启debug模式并调试protocol设置调试协议auto尝试自动检测目标运行时使用的协议inspector新的 V8 调试器协议,解决遗留版本的多数问题,node versions >= 6.3 - and Electron versions >= 1.7.4.legacy原始的 v8 调试器协议,node versions < v8.0 and Electron versions < 1.- 7.4.port调试使用的端口addressTCP/IP 地址,用于远程调试localRoot远程调试时映射的本地地址remoteRoot远程调试时的远程目录地址sourceMaps默认为 trueoutFiles当 map 文件不在 js 文件同目录时用于指定 sourceMaps 的位置restart自动重启调试timeout配置自动附加的超时时间stopOnEntry自动断点到第一行代码处smartStep自动跳过未映射到源代码的代码skipFiles指定跳过单步调试的代码trace启用诊断输出
2. launch模式的专属配置项
program指定调试入口文件地址args传递给程序的参数,可在process.argv拿到cwd指定程序启动调试的目录runtimeExecutable设置运行时可执行文件路径,默认是node,可以是其他的执行程序,如-npm、nodemonruntimeArgs传递给运行时可执行文件的参数runtimeVersion设置运行时可执行程序的版本,如果使用 nvm,可以切换node.js版本env添加额外的环境变量envFile文件加载环境变量console配置终端可以是外部终端或者内部集成终端,默认值 internalConsoleautoAttachChildProcesses跟踪调试对象的所有子过程,并自动附加到在调试模式下启动的- 子过程
3. attach 模式的专属配置项
processId指定nodejs进程id, 由于每次启动都会变,传入"${command:PickProcess}"
4. 平台特有属性
"windows":{/*专属配置项*/}
"linux":{/*专属配置项*/}
"osx":{/*专属配置项*/}但凡被windows、linux、osx包裹的属性只会在对应平台生效,如:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/node_modules/gulp/bin/gulpfile.js",
"args": ["myFolder/path/app.js"],
"windows": {
"args": ["myFolder\\path\\app.js"]
},
"osx": {
"stopOnEntry": false
}
}
]
}5. launch.json 默认环境变量
${workspaceFolder}:当前打开工程的路径。${file}:当前打开文件的路径。${fileBasename}:当前打开文件的名字,包含后缀名。${fileBasenameNoExtension}: 当前打开的文件的无后缀名子${fileDirname}:当前打开文件所在的文件夹的路径。${fileExtname}:当前打开文件的后缀名。${cwd}:当前执行目录