本文讲述对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中的scriptsdebug指令,这种形式更加灵便和更广的适用范围,倡议应用该形式。