网易首页 > 网易号 > 正文 申请入驻

Mdebug:基于React开发的移动web调试工具

0
分享至

作者:thinkchen,腾讯 PCG 高级前端开发工程师

是腾讯新闻 TNTWEB 团队推出的基于React开发的新的web调试工具, 沉淀自腾讯新闻微信手 q 双插件多年的移动 web 开发实践中。相比 vconsole, eruda 等调试工具, 使用现代框架进行编写。整合 network 监控能力,提供了更丰富的调试能力和 api, 拥有更强大的网络捕获能力,接入和使用简单。本文将从背景, 架构,功能, 实现原理, 未来扩展点等角度全面介绍这款工具。

一.背景

调试一直是移动 web 开发的疼点,业界也在调试工具上不断寻找更好的解决方案。从真机联调,js 模拟,Nodejs 代理,代理软件等方面提出移动 web 调试解决方案。是一款通过 js 模拟来实现移动 web 调试的轻量化工 具,无需依赖任何插件,使用简单,功能强大。

git 地址:

快速体验:

二、功能介绍

mdebug 提供了系统,日志,网络,元素,存储,代理,性能七大实用功能。下面我们逐一介绍这些功能:

1.系统

系统功能提供了当前访问地址,UA,视窗大小,用户标示等信息,并支持点击复制,可以让你快速了解当前系统情况。
2.元素
呈现了当前页面的 dom 元素,可以快速了解当前页面的 dom 元素情况,支持展开和折叠,体验接近 chrome devtools elements。
3. 日志
支持多种日志展现,支持日志分类,全局过滤,日志导出,执行 js 命令,支持长日志折叠展开,提升大日志量展示性能等功能。
4.网络
支持多种网络请求查看,包括静态资源,接口,websocket 请求等,并支持模糊查找。
5.存储和 Cookie
支持多种存储展现,支持增删存储,支持模糊查找,支持长日志折叠展开,提升大日志量展示性能等功能。
6. 前端代理 proxy
简单版的本地 host,支持通过面板快速修改域名代理,将页面请求转发到另外一个域名
7.性能 performance
参考业界性能监控常用指标,输出页面当前性能情况

三、快速使用 1. ES6import mdebug from 'mdebug';
mdebug.init();
2. CDN(function() {
var scp = document.createElement('script');
// 加载最新的mdebug版本
scp.src = 'https://unpkg.com/mdebug@latest/dist/index.js';
scp.async = true;
scp.charset = 'utf-8';
// 加载成功并初始化
scp.onload = function() {
mdebug.init();
// 加载状态切换回调
scp.onreadystate = function() {};
// 加载失败回调
scp.onerror = function() {};
document.getElementsByTagName('head')[0].appendChild(scp);
四. API 介绍 1. initmdebug.init({
containerId: '' // mdebug挂载容器id, 如果传空, 内部会自动生成一个不重复的id,
plugins: [], // 传入mdebug插件
hideToolbar: [], // 传入需要隐藏的tab id
2. addPluginmdebug.addPlugin({
id: '', // tab id
name: '', // tab对应的中文title,
enName: '', // tab对应的英文title
component: () => {}, // tab对应的react组件
3. removePlugin// 支持移除的panel对应的id
System => system;
Elements => elements;
Console => console
Application => application
NetWork => network
Performance => performance
Settings => settings
mdebug.removePlugin([]);
4. exportLog
@returned {
type: '' // 日志类型
source: [], // 原始日志
@params type
// type等于log, 返回所有的console日志
// type等于net, 返回所有的net日志
mdebug.exportLog(type);

5. onmdebug.on(eventName, callback);
6. emitmdebug.emit(eventName, data);
五、事件列表

六.业界主流调试工具介绍 1. js 模拟

  • erudahttps://github.com/liriliri/eruda/blob/master/doc/README_CN.md

  • vconsolehttps://blog.csdn.net/yihanzhi/article/details/105728049 https://liuxianyu.cn/article/mobile-vConsole.html

2.抓包工具

  • Fiddlerhttps://www.cnblogs.com/yyhh/p/5140852.html



  • Charleshttps://www.cnblogs.com/peng-lan/p/11242954.html https://www.cnblogs.com/linyfeng/p/9496126.html



  • Tcpdumphttps://juejin.cn/post/6844904084168769549



  • USBhttps://aotu.io/notes/2017/02/24/Mobile-debug/index.html


3. Nodejs 代理工具
  • whistlehttps://segmentfault.com/a/1190000014891582

  • LivePoolhttps://www.freebuf.com/sectool/73408.html

  • AnyProxyhttps://jingyan.baidu.com/article/948f5924d0c9a3d80ff5f983.html

七、业界方案对比

和业界 js 模拟调试工具相比,mdebug 在扩展性,用户体验上做了更多思考和探索。

mdebug 基于 react 框架编写, 充分利用组件化思想,简化实现逻辑。可以和现有 react 组件充分结合提升扩展性。并通过事件机制来降低 mdebug 和外部的业务逻辑代码通信负担。

通过 hook console api 来将 console 输出的日志,传输到 mdebug 中进行格式化展现。并支持对日志进行检索,导出等功能

2. Hook Fetch Ajax

mdebug 在底层拦截网络请求,将网络请求相关信息,存储在内存队列中,并派发相关事件给 mdebug 进行展现。同时支持对网络请求日志进行全局检索,导出等

3. Performance API

通过 performance api 我们能够获取到浏览器页面加载性能,静态资源加载等情况。

(1) 页面性能

mdebug 使用 window.performance.timing 来获取页面性能加载数据,并参考业界常用性能指标计算方式,为业务提供简单直观的性能数据。

(2) 静态资源加载

通过 performance.getEntries 来获取页面静态资源加载情况,并通过事件机制通知到 mdebug network 面板。

相关源码

4.使用 redux 来进行状态管理 5. 调用原生存储 api 来获取,设置,删除存储 6. 除了 redux 状态管理外,通过 eventbus 事件机制来进行日志,网络数据的派发通知, 以及 mdebug 和外部业务逻辑代码的通信。 十、未来拓展点

mdebug 作为移动 web 调试工具的一个新的探索,未来可以结合业务实践沉淀更多的功能。通过插件的机制来供业务自由组合使用。另外我们也在探索多前端框架支持,插件编写上可以支持 vue,react,原生 js 等。另外作为一个 react 入门学习项目,也是一个很好的实践项目。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
媒体人:拜郭指导所赐,土帅几乎已经是落后生产力的代名词

媒体人:拜郭指导所赐,土帅几乎已经是落后生产力的代名词

懂球帝
2026-10-26 10:53:06
金球各奖项揭晓:凯恩封王,姆巴佩言论成污点,球王淡薄置身事外

金球各奖项揭晓:凯恩封王,姆巴佩言论成污点,球王淡薄置身事外

老癘体育解说
2026-10-27 07:28:13
恭喜广东队!NBA级天赋内线确认加盟,保底总决赛了!

恭喜广东队!NBA级天赋内线确认加盟,保底总决赛了!

绯雨儿
2026-10-26 10:20:21
“眼神都拉丝了!”家长晒母子互动视频,引全网不适:儿大不避母的结果

“眼神都拉丝了!”家长晒母子互动视频,引全网不适:儿大不避母的结果

妍妍教育日记
2026-08-31 23:54:51
扯谎的马斯克,经不起推敲!

扯谎的马斯克,经不起推敲!

山河路口
2026-10-26 11:39:58
黑龙江畜生公公周永福被判死刑,法庭上嚣张大笑:这辈子值了

黑龙江畜生公公周永福被判死刑,法庭上嚣张大笑:这辈子值了

纸鸢奇谭
2025-02-06 14:31:24
半场16分48秒砍15分7板2助2断,正负值+19

半场16分48秒砍15分7板2助2断,正负值+19

慢享生活集
2026-10-27 05:59:32
令人崩溃!星巴克调整入座规则后,大批老人转场Manner坐满整店网传无一笔消费,座位之争再次引发热议

令人崩溃!星巴克调整入座规则后,大批老人转场Manner坐满整店网传无一笔消费,座位之争再次引发热议

火山詩话
2026-10-26 15:32:12
陈赓当众击毙副主席之子,毛主席一言不发,就送了一箱东西

陈赓当众击毙副主席之子,毛主席一言不发,就送了一箱东西

一鑫文化馆
2026-10-25 20:00:12
陈熠3比0夺冠后:日媒一针见血,指出张本美和惨败原因

陈熠3比0夺冠后:日媒一针见血,指出张本美和惨败原因

刘哥谈体育
2026-10-27 02:07:59
海南:到2027年新增汽车中新能源汽车比例不低于70%,平稳推进2030年禁售燃油车

海南:到2027年新增汽车中新能源汽车比例不低于70%,平稳推进2030年禁售燃油车

界面新闻
2026-10-26 16:00:37
远离满嘴“家国大义”的人

远离满嘴“家国大义”的人

难得君
2026-10-04 14:53:26
西甲要查了:姆巴佩绝杀庆祝时,有球迷用旗杆打向卡马文加

西甲要查了:姆巴佩绝杀庆祝时,有球迷用旗杆打向卡马文加

温柔且自由
2026-10-27 03:53:55
读秒绝杀!山东泰山B队2-1逆转江西庐山,登顶同时占据冲甲主动权

读秒绝杀!山东泰山B队2-1逆转江西庐山,登顶同时占据冲甲主动权

实事球是
2026-10-26 17:39:06
数据显示,超15%的中青年夫妻处于“干婚”状态,68%的中年人拥有固定深交的异性网友

数据显示,超15%的中青年夫妻处于“干婚”状态,68%的中年人拥有固定深交的异性网友

舒山有鹿
2026-07-25 09:57:20
95.8分压奥利塞凯恩,亚马尔连续两年登顶却还没赢过

95.8分压奥利塞凯恩,亚马尔连续两年登顶却还没赢过

体坛观察猿
2026-10-27 02:39:05
真不赖,网传某大厂大专外包男把985硕士正式女员工搞到手了!

真不赖,网传某大厂大专外包男把985硕士正式女员工搞到手了!

黯泉
2026-10-24 10:56:48
兵败如山倒!国产新能源或已证明:中国其实不需要二线豪华品牌

兵败如山倒!国产新能源或已证明:中国其实不需要二线豪华品牌

铭记历史呀
2026-09-20 16:15:46
1986年邓颖超与“养子”李鹏及夫人朱琳在中南海的珍贵合影!

1986年邓颖超与“养子”李鹏及夫人朱琳在中南海的珍贵合影!

谈古论今历史有道
2026-10-04 06:00:07
降级咎由自取!三镇乱象频发,球迷劣行透支球队口碑

降级咎由自取!三镇乱象频发,球迷劣行透支球队口碑

狮王乱弹
2026-10-27 06:53:21
2026-10-27 08:35:00
腾讯技术工程
腾讯技术工程
不止于技术
1465文章数 601关注度
往期回顾 全部

科技要闻

苹果发iPad mini 8:5499元起售 配A20 Pro

头条要闻

俄乌战场上的雇佣兵有多惨:被殴打40分钟 遗体扔雪地

头条要闻

俄乌战场上的雇佣兵有多惨:被殴打40分钟 遗体扔雪地

体育要闻

13年后重回诺坎普,穆里尼奥又滑跪了

娱乐要闻

胡歌杨幂刘诗诗袁弘陈龙结伴去埃及

财经要闻

卢锋:全球失衡背后 大国博弈与多边治理

汽车要闻

云辇-M上车 第二代海豹07让驾驶者也能爱上的家用车

态度原创

亲子
手机
家居
公开课
军事航空

亲子要闻

43岁林依晨称“生完孩子痛经基本消失”,去年刚生下第二个孩子;医生:痛经分两种,生育能否缓解要看病因

手机要闻

苹果iOS/iPadOS 27.2正式版发布

家居要闻

2026建博会(广州) 公装联探展交流活动

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

高清大图!歼-15红蓝对抗训练最新画面

无障碍浏览 进入关怀版