如何使用NodeJS调试神器VSCode Debugger

这是我参与更文挑战的第4天,活动详情查看: 更文挑战

看完别忘了给我点个赞哦❤️

在写NodeJS应用的过程中越发感受到VSCode Debugger有如神助。我通过加断点查看局部变量配合对照修改代码重新运行的方式帮我理清了很多问题,提高了效率。

今天就让我给你介绍VSCode debugger测试NodeJS的几种方法,总有一款适合你!

以文件为入口

我们可以通过命令行 node file.js的方式直接运行一个NodeJS文件。VSCode debugger同样也可以这样操作。只需要:

  1. 打开一个NodeJS文件
  2. 切换到RUN AND DEBUG面板
    vscode debugger.png
  3. 点击Run and Debug按钮
  4. 在随后打开的环境选项面板中选择Node.js
    file entry-1.png

就可以看到右侧打开调试控制台,打印出了一段调试用的脚本,并且运行到预先设置的断点程序暂停了:

file entry-2.png

不过很快你发现这运行的文件不对啊???这里的设定有点坑爹,VSCode如果检测到当前工作空间主目录里有package.json并且定义了main脚本入口的话就会忽略当前打开的文件而以它为入口。

想要改变这种行为,就得准备一个launch.json文件来定义了。

launch.json自定义更多选项

点击RUN AND DEBUG面板中的create a launch.json file链接,就会自动创建一个.vscode目录以及launch.json文件。

vscode debugger.png

文件内容如下:

script entry-launch json.png

打开注释里的链接就能看到完整的选项说明。不过大多时候我们只需要了解它的主要配置项包括:

  • 指定运行用的环境,我们用"type": "node"指定
  • NodeJS需要从一个JS文件开始,我们用"program": "${workspaceFolder}/script.js"指定
  • 如果这个文件需要一些参数输入,则添加"args": []选项
  • 如果需要一些环境变量输入,则添加"env": { "env_name": "env_value" }选项

举例,可以像这样通过修改自动生成的launch.json来用ts-node调试TS源文件:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}/node_modules/.bin/ts-node",
      "args": ["${workspaceFolder}/src/index.ts"]
    }
  ]
}
复制代码

以上对应了命令行脚本:ts-node src/index.ts

设置完毕后,点击RUN AND DEBUG 面板上方的Launch Program绿色箭头小图标就可以运行调试了。

以脚本命令为入口

如果程序入口在工作空间中的package.json配置了scripts启动脚本,那除了配置launch.json之外,还可以用这些脚本打开。

可以通过点击面板中Show all automatic debug configurations链接:

vscode debugger.png

或在Launch Program下拉框中选择Node.js

script entry-dropdown.png

就会弹出以下选项框:

script entry-script.png

这些都是我在package.json中配置的scripts,选中回车,调试即开始运行。

以测试用例为入口

我个人喜欢的是以测试用例为入口了。相比以上几种方法,测试用例入口可以督促我多写合适的测试用例,大大缩小调试的范围,更好地控制输入参数。不过这些入口自己配置会相当麻烦,不妨借助于市场上的VSCode扩展,比如我用的Jest Test Explorer就很便捷。

Jest Test Explorer在左侧边栏有一个面板可以把所有已存在的Jest测试用例列出来,以供快速运行和调试:

jest-test-explorer-1.png

也在测试代码块上显示运行和调试的快捷链接:

jest-test-explorer-2.png

点击Debug图标或链接,就可以开启VSCode的代码调试,不需要任何额外的配置,是不是很方便?

客官,点个赞再走❤️!

往期推荐

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享