开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情
前言
好多前端小伙伴都知道node,但是我个人之前总是觉得我好像在开发中用不到node,但是我为什么要学node.js调试呢,因为我想提高下水平,为了职场更好地发展,为了学习更高级的编程思维,我想要开始学习node,学习之前,先了解下node.js如何调试。
一、Inspector优势
- 可以查看当前上下文的局部变量和全局变量
- 可以直接执行一些特定的代码
- 调用堆栈
- 不侵入我们的代码
命令
1)mkdir node-debug // 创建空文件夹
2)code node-debug // 使用vsCode打开node-debug文件夹
二、Inspector的构成以及原理
- 启动Inspector的时候会启动WebSockets服务(监听命令)(双向通信)
- Inspector协议(用一系列代码表示各种各样的命令)
- HTTP服务(获取原信息)(单向通信)
其中devtoolsFrontendUrl的值直接拷贝到chrome中,可以直接用chrome的调试工具进行调试。
三、激活调试
- 激活方法
node --inspect app.js
- express快速开发平台:www.expressjs.com.cn/
命令: node app.js // 启动 (在3000端口打开)
debug命令: node --inspect app.js
- 如果没有激活node调试,可以debug吗?
这个在linux和OSX上可以监听到SIGUSR1发送的调试信息
四、调试客户端-chrome devtools
a、 访问chrome://inspect,点击配置按钮,确保Host和Prot对应
b、访问元信息中的devtoolsFrontendUrl
c、点击绿色小图标
- 在chrome浏览器中输入chrome://inspect,点击configure,确保地址一致,点击target下的inspect调试面板就出现了
- 浏览器中输入http://localhost:9229/json找到原信息,复制devtoolsFrontendUrl字段值在浏览器中打开
五、调试客户端vscode
- 启动方式:按F5
- 配置launch.json(想要指定调试的文件,并添加参数)
方法:选择添加配置Add Configuration...,出现默认的launch.json文件。
将program参数后面的文件名改为自己需要调试的文件名;参数:添加args。
另:在vsCode中有自动附加的功能,如果在vsCode中打开了此功能,也可以捕捉到。
方法:ctrl+shift+p搜索Debug:Toggle Auto Attach,然后控制台输入node --inspect app.js。
若有多个调试文件,可以添加多个配置,修改name进行区分。
六、添加命令行参数
命令: node --inspect app,js
自定义http:port: node --inspect=127.0.0.1:9999 app.js = node --inspect=9999 app.js
程序运行速度过快,还无法进入断点,使用 node --inspect-brk app.js解决
在命令行进行断点调试: node inspect
chrome浏览器开发者工具
profiler:用来检测javaScript的性能(主要是时间)
sources:可以在里面打断点,监听本地变量
watch:打断点,监听本地变量
Call Stack:调用堆栈
Scope:作用域
BreakPoints:端点列表
Memory:内存
结束语
上述便是我所了解到的一些node.js调试,有感兴趣的可以找一些相关视频深入学习!