Vscode下node程序的调试

Vscode下,想要通过debugger来启动一个程序,需要在.vscode/launch.json文件中的configurations下,配置一个debugger的具体信息。

如下,configurations是一个数组,它的每一个元素就是一个debugger。想要让程序以不同的方式启动,就要配置并使用不同的debugger。

{
    "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "launch program normally",
      "program": "${workspaceFolder}\\index.mjs"
    },
    {
      "type": "node",
      "request": "launch",
      "name": "通过NPM脚本启动",
      "runtimeExecutable": "npm",
      "runtimeArgs": [
        "run",
        "run"
      ],
      "port": 9229
    }
  ]
}
复制代码
怎么添加一个debugger?

不可能要手动打出配置对象的字面量的。vscode提供了快捷方式:

(这张图片是借用vscode官方文档的)

我们只要点击下面的Add Configuration,在选择我们需要的debugger类型,vscode就会帮我们生成一个半成品debugger配置对象了。

之所以说是半成品,是因为还需要自己配置。

那么,怎么使用一个特定的debugger呢

只要在这个下拉菜单中,选择对应的debugger就行了。

普通地启动程序的debugger

所谓普通地启动程序。就是通过命令node program.js这样来启动程序。可见,不需要给命令传递任何参数。

需要的debugger类型是:Node.js Launch program

我们的配置方法是:

  • 首先设置debugger的type:node这样在启动程序的时候,就会使用node来运行js文件。
  • 然后设置debugger的program属性的值为要运行的程序的绝对地址。

然后就可以了。

在运行这个debugger的时候,实际执行的命令是:

C:\Program Files\nodejs\node.exe --inspect-brk=31559 index.mjs
复制代码

除了vscode自动加上去的--inspect-brk=31559,别的都在预料之内:vscode运行了index.mjs,并且调用了node来运行程序。

在node中,通过运行脚本启动程序的debugger

所谓“通过运行脚本来启动程序”(在这个例子中)就是通过运行npm script来启动程序。

需要用到的debugger类型是:Node.js: Launch via NPM

需要配置的属性有:

  • runtimeExecutable: “要使用的运行时”。这里的值是npm。也就是说我们要运行npm这个程序

  • runtimeArgs:“传递给运行时可执行文件的参数”,值是一个数组,元素是参数,会按照顺序传递给可执行文件。比如说我们希望通过npm脚本npm run debug来启动程序,那我们这里就应该设置["run", "debug"]

  • port:调试要附加在的端口(?)。我们的npm脚本中,需要针对这一项做相应的设置。这里的值是9229

如果说package.json中有如下脚本:

"scripts": {
	"debug": "node --experimental-modules index.mjs",
}
复制代码

我们想让debugger通过运行这个脚本来启动程序。我们就需要对这个脚本做出修改:

"scripts": {
	"debug": "node --nolazy --inspect-brk=9229 --experimental-modules index.mjs",
}
复制代码

然后运行这个debugger,实际执行的命令是:

C:\Program Files\nodejs\npm.cmd run debug 
复制代码

程序就会正常运行了

参考

stackoverrun.com/cn/q/118818…

code.visualstudio.com/docs/editor…

初来乍到,欢迎各位批评指教!

转载于:https://juejin.im/post/5c99749af265da60f673175e

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值