最近在学习神光大神的《Nest通关秘籍》,该小册主要包含下面这些内容:
现在购买还有优惠,《传送门》
接下来的日子里,我将更新一系列的学习笔记。感兴趣的可以关注我的专栏《Nest 通关秘籍》学习总结。
特别申明:本系列文章已经经过作者本人的允许。 大家也不要想着白嫖,我的笔记只是个人边学习边记录的,不是很完整,大家想要深入学习还是要自己去购买原版小册。
本节我们学习如何用vscode来调试Nest代码。
当然在这之前,神光大神已经出过关于《前端调试通关秘籍》,教你如何掌握 VSCode Debugger + Chrome DevTools + Charles,全面提升调试能力!
一、在浏览器调试
1.1 调试node
node --inspect-brk index.js
--inspect 是调试模式运行,而 --inspect-brk 还会在首行断住。 node测试代码如下:
const a = 1
const b = 2
let c = a + b
console.log(c)
运行node --inspect-brk index.js
在浏览器打开chrome://inspect/#devices,点击调试的项目代码,如果没有,就配置下 network target,加上 localhost:9229
就会新开一个浏览器
并且在vscode中生打开断点调试
1.2 调试nest
在nest中,运行npm run start:debug
我们需要在 controller 里加个 debugger,然后访问下 http://localhost:3000,
再点击inspect,这时候你会发现代码在断点处断住了:
然后你就可以愉快的进行断点调试了。
二、在vscode调试
2.1 调试node
还是以node.js代码为示例:
const a = 1
const b = 2
let c = a + b
console.log(c)
点击调试面板的 create launch.json file,它会创建 .vscode/launch.json 的调试配置文件:
然后添加node配置
配置修改如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Program",
"program": "${workspaceFolder}/index.js",
"request": "launch",
+ "stopOnEntry": true,
"skipFiles": [
"<node_internals>/**"
],
"type": "node"
}
]
}
这里的stopOnEntry就像--inspect-brk一样的效果,会在首行断住。
运行node --inspect-brk index.js
就可以进行调试了
2.2 调试nest
运行nest start --debug或者npm run start:debug
添加一个 attach 类型的调试配置:
在controller中加一个断点
然后浏览器中进行访问接口:http://localhost:3000/
就可以在vsocde中调试断点了。如果无效,重新运行一下
nest start --debug
除此之外,还可以运行npm脚本命令的方式逆行调试,
创建一个
via npm的方式
然后调整配置如下:
{
"type": "pwa-node",
"request": "launch",
"name": "debug nest",
"runtimeExecutable": "npm",
"args": [
"run",
"start:dev",
],
"skipFiles": [
"<node_internals>/**"
],
"console": "integratedTerminal",
}
解释一下:
runtimeExecutable:代表执行什么命令args:后面带的命令console:integratedTerminal用 vscode 的内置终端来打印日志
然后点击调试模式启动,也就是运行了npm run start:dev
然后浏览器访问 http://localhost:3000
这样就可以调试了。这是最方便的调试 nest 项目的方式。