在开发过程中,你有没有遇到过这样的困扰:使用 --inspect 选项打开的 Node.js 程序,居然不支持网络标签!这就导致我们在调试时无法像在浏览器中那样方便地查看网络请求信息。 不过别担心,今天我要给大家介绍一个超棒的项目Node Network DevTools,它完美解决了这个问题!
node-network-devtools 是一个基于 CDP 协议的 nodejs 调试扩展程序,无需安装证书、配置代理等各种繁琐步骤,简单引入包体后,即可将 nodejs 发起的 axios 、got 等网络请求在 chrome devtools 上限制!
项目地址: https://github.com/GrinZero/node-network-devtools
预览:
1 next2023 313 天前 via iPhone 有空去用用 |
![]() | 2 ixoy 313 天前 |
![]() | 3 bugyaluwang OP @ixoy 哈哈,你看看 nodejs 那个 PR 的实现对照一下我的实现方式,那不是从我这出来的方案吗 然后感觉你说的是不是有点矛盾,浏览器看直观和直接抓包有点冲突吧? |
![]() | 4 lisxour 312 天前 @bugyaluwang 区别就是,官网可能会有更好更底层的 hook 方式,可以适应所有请求框架,但是自己写的得每个请求库去适配实现 |
![]() | 5 bugyaluwang OP @lisxour 可能还需要一些时间发展吧。现在官方提供的钩子,提供的基本信息太少了,什么堆栈的根本做不到。自己写的话,其实并不一定要每一个请求库都去适配。因为在早期版本中,所有的请求库都一定是通过 HTTP ,HTTPS 这两个库去封装的。所以我只需要去拦截这两个库做处理就好了。后来虽然又增加了一些 fetch ,undici ,但是目前来讲成本还不算太高。 |
![]() | 6 lizhenda 311 天前 有点厉害哦,准备试试! |
7 next2023 309 天前 按照 readme 安装后,启动失败。 报错了: 调试连接已关闭。原因:WebSocket 已断开连接准备就绪时,打开 DevTools 即可重新连接。 重新连接 DevTools |
![]() | 8 bugyaluwang OP @next2023 可以截个图或提个 issue 吗,我立刻修。可恶。 |