本文讲述对 node 环境中应用 vscode 的 debug 进行调试。具体内容请仔细阅读[官网](),本文只是用来疏导如何疾速调试,高级用法须要参考官网的细节配置。
任意繁多文件的疾速调试
如果对于任意一个能够应用 node
指令执行的文件,间接在 vscode 中关上:
应用 vscode 搭上断点或者代码中编写debugger;
,而后在左侧目录中选中 debug 扩大:
点击“运行和调试”,即可 debug 以后关上文件:
疾速调试多个文件
如果须要调试多个文件,能够关上一个反对调试的 js 中断:
在终端中执行代码:
执行后,也是调试成果:
该形式能够在终端继续调试,是一个罕用的长期调试形式。
固定反复调试某个文件
如果须要对某个文件进行反复调试,这个时候能够配置 debugger 配置:
如果是关上了某个文件,而后点击创立 lanuch.json
文件,抉择 node 环境:
它会创立一个用 node 执行该文件的配置:
执行右上角的“Lanch Program”(箭头所指),不论你以后 vscode 关上的是哪个文件,都会调试 debug-test.js
文件。
执行后,vscode 会主动关上调试文件。
生成的文件在当前工作空间目录下的 .vscode
目录下:
如果须要多人共用,留神不要被 .gitignore
。
同理删除该文件,之前创立的调试配置就会被革除。
如果以后没有关上文件,创立的配置为:
跟咱们间接点击“运行和调试”是一样的。
该形式的益处是,在调试配置文件中,能够配置一些参数 (如ts-register
等),环境变量等,能够固定一些测试场景,防止每次反复设置。
反对配置多个调试配置。其中 name 倡议保护成具备具体含意的文本,不便调试:
调试即可多个选项抉择:
须要预处理的调试
在调试高版本 es6 或者 ts 代码时,须要在调试之前须要固定进行一些解决。
第一种形式,就是依照下面的配置的形式,而后配置参数 args
,runtimeArgs
的形式,利用一些预处理工具的 register
机制,如@babel/register
,ts-node/register
:
{
"type": "node",
"request": "launch",
"name": "后置指令",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}/debug-test.ts",
"runtimeArgs": ["-r", "ts-node/register"],
"outFiles": ["${workspaceFolder}/**/*.js"
]
},
另一种形式就是,写一个代理的入口文件,在这个入口文件中,对其余文件进行预处理而后执行。也就是你能够间接把 program
配置成你的脚手架,而后执行,此时整个脚手架都具备调试性能。
在 vscode 的 debug 中,还提供了一种 preLaunchTask
机制, 通过在配置中配置 preLaunchTask
应用:
{
"type": "node",
"request": "launch",
"name": "具备前置工作",
"program": "${workspaceFolder}/out/test.js",
"preLaunchTask": "build-ts",
"outFiles": ["${workspaceFolder}/out/test.js"]
}
下面的配置还须要创立对应的 task
最罕用的还是将调试指令配置为执行一个命令:
{
"command": "npm run debug",
"name": "通过指令",
"request": "launch",
"type": "node-terminal"
},
debug 的每次执行,都会执行指令 npm run debug
,也就是package.json
中的 scripts
下debug
指令,这种形式更加灵便和更广的适用范围,倡议应用该形式。