## 推荐项目 - 项目地址:https://github.com/GrinZero/node-network-devtools <!--请从中选择(C、C#、C++、CSS、Go、Java、JS、Kotlin、Objective-C、PHP、Python、Ruby、Rust、Swift、其它、书籍、机器学习)--> - 类别:JS <!--请用 20 个左右的字描述它是做什么的,类似文章标题让人一目了然 --> - 项目标题:node-network-devtools - Inspecting Node.js's Network with Chrome DevTools✨ <!--这是个什么项目、能用来干什么、有什么特点或解决了什么痛点,适用于什么场景、能够让初学者学到什么。长度 32-256 字符--> - 项目描述: `node-network-devtools`是面向 node 开发者的工具库,用于在调试标签中增加对请求的显示。**这小小的一个能力,实际上是从九年前就在[社区](https://stackoverflow.com/questions/28873332/how-to-monitor-the-network-on-node-js-similar-to-chrome-firefox-developer-tools)中提出,但是由于未能与 Chrome 开发团队达成共识以及多种原因最终 delay 到今天仍没有完成的能力。** 直到本项目完成首版本之后,node 社区开始根据本库的思路进行了[开发](https://github.com/nodejs/node/pull/53593),并在 v22.6.0 版本上线了初步功能( node 官方实验性地支持了对基于 http/https 库的请求的调试)。 <!--令人眼前一亮的点是什么?类比同类型项目有什么特点!--> - 亮点: 1. `node-network-devtools`额外支持了调用堆栈跟踪的能力。 2. 支持远程调试、容器内调试。 3. 多进程隔离上下文,有更友好的热重载调试体验。 4. node-network-devtools 能兼容社区中任何的请求库,包括 axios、socket.io、request、got 等 5. 支持 fetch 请求的调试。 6. 支持 websocket 的调试。 7. 相比其他社区同类型项目,node-network-devtools 直接通过 CDP 在开发者最熟悉的 Chrome Devtools 上显示信息,而非自定义 UI。 - 示例代码:(可选) ```js import { register } from 'node-network-devtools' process.env.NODE_ENV === 'development' && register() ``` - 截图:(可选)gif/png/jpg <img width="807" alt="image" src="https://github.com/user-attachments/assets/e69f4fbc-e8df-4f1e-a961-dc90a750d5f1"> - 后续更新计划: 1. 增加对 http 服务端的支持 2. 基于 SQLite 或者其他持久化技术,防止内存占用过大。