告别盲盒式调试!把 Chrome DevTools 装进手机里,移动端调试神器 Eruda 深度实操

身为前端开发,你一定经历过这种令人抓狂的时刻:

在电脑上用 Chrome 模拟器调试得天衣无缝,怎么滑动都流畅,怎么操作都正常。可是一旦部署到测试机或客户的手机微信里,页面立刻白屏,或者点击某个按钮毫无反应

你拿来手机,连上 USB 线,试图开启电脑的 Chrome Inspect,结果因为证书、驱动、甚至微信浏览器的内核问题死活连不上。无可奈何之下,你只能在代码里写满 alert(JSON.stringify(data)),然后一遍遍打包、上传、刷新手机,像个盲人摸象一样猜测到底是哪里报错。

这种“盲盒式”调试,该结束了!

今天给大家推荐一款专为移动端浏览器设计的前端调试利器——Eruda。它只有几百 KB,却能让你在手机屏幕上,直接像电脑一样用上熟悉的 F12 开发者工具

Eruda 移动端调试工具封面


什么是 Eruda?

Eruda 是一款嵌入式的开源 JavaScript 调试控制台。

简单来说,它就像是把 Chrome DevTools 浓缩成了一个网页插件。只需在你的网页中引入一小段 JS 代码,网页右下角就会出现一个醒目的小齿轮图标。点击它,就能瞬间唤出一个功能齐全的调试面板。

无论是 iOS 的 Safari、安卓的 Chrome,还是微信、钉钉内置的浏览器,Eruda 都能完美兼容。


核心功能全景解析

虽然是在手机小屏幕上运行,但 Eruda 的功能可一点都不含糊。它几乎复刻了电脑端 Chrome DevTools 的核心模块:

1. 控制台日志(Console):捕获一切报错

在移动端测试时,报错往往转瞬即逝,根本看不见。Eruda 能够: - 实时捕获所有的 console.logconsole.errorconsole.warn 等日志输出。 - 支持未捕获的 JavaScript 运行时错误(Uncaught Exceptions)拦截。 - 面板底部自带 JS 代码输入框,你可以直接在手机上编写、执行 JS 代码,修改页面变量或调用接口。

2. 网络监控(Network):前后端联调的“透视眼”

在手机端调试最怕接口报错。Eruda 的 Network 面板可以: - 实时截获所有通过 fetchXMLHttpRequest 发送的 HTTP 请求。 - 查看请求头(Request Headers)、响应内容(Response)、状态码以及接口耗时。 - 帮你一眼定位到底是前端参数传错了,还是后端接口挂了。

3. 元素检查(Elements):所见即所得的样式调整

类似电脑端的 F12 元素选择器: - 支持“屏幕点击选取”模式,手指点到哪,Elements 面板就自动高亮对应的 DOM 节点。 - 查看 DOM 树结构,并在手机上直接修改元素的文本、HTML 属性和 CSS 样式。 - 动态预览样式修改效果,省去了一遍遍修改代码并重新部署的繁琐。

Eruda 元素与控制台调试

4. 资源管理(Resources):本地存储尽在掌握

做移动端缓存、登录态联调时,常需要跟 LocalStorage 斗智斗勇: - 轻松查看并清除 Cookie、localStoragesessionStorage。 - 查看当前页面加载的图片、JS 脚本和 CSS 样式表资源。 - 在不需要重启浏览器的情况下,随时清理缓存重新测试。

Eruda 网络监控与本地存储

5. 性能监控(Info & FPS):流畅度的量化体现

  • 实时展示当前页面的 FPS 帧率,检测页面是否存在严重的卡顿。
  • 显示当前内存占用(安卓端部分浏览器支持)和页面加载的性能计时(Performance Timing)。
  • 为你优化页面白屏和加载速度提供数据支撑。

怎么在手机上快速使用?

Eruda 提供了多种灵活的引入方式,可以根据你的开发阶段任意选择。

方式一:CDN 引入(临时调试首选)

如果你只想在某个测试网页上临时看下报错,直接在 HTML 文件的 <body> 底部加上以下两行代码即可:

<!-- 引入 Eruda 主脚本 -->
<script src="https://cdn.jsdelivr.net/npm/eruda"></script>
<!-- 初始化 Eruda -->
<script>
  eruda.init();
</script>

初始化后,网页右下角就会出现红色的齿轮图标,点击就能呼出控制台。

方式二:NPM 安装(常规项目开发)

如果是在大型单页应用(如 Vue、React、Vite 项目)中,建议将 Eruda 安装为开发依赖:

npm install eruda --save-dev

在你的入口文件(例如 main.jsindex.js)中引入并初始化:

import eruda from 'eruda';

// 仅在非生产环境或开发/测试环境下启用
if (process.env.NODE_ENV !== 'production') {
  eruda.init();
}

方式三:书签脚本(终极黑客玩法,免改源码)

有时候,Bug 发生在别人的线上网站上,或者是一个你无法修改源码的第三方系统。这时候你可以使用“书签脚本(Bookmarklet)”。

1. 在手机浏览器中任意新建一个书签,命名为 Eruda 调试器

2. 将书签的 URL 地址修改为以下这段 JavaScript 代码:

javascript:(function(){var script=document.createElement('script');script.src="https://cdn.jsdelivr.net/npm/eruda";document.body.append(script);script.onload=function(){eruda.init();}})();

3. 打开你想要调试的任意网页,然后在地址栏搜索或点击刚才保存的 Eruda 调试器 书签。

4. 叮!调试面板就动态注入到了别人的网页上!


进阶技巧:如何在生产环境安全加载?

⚠️ 警告:千万不要直接在生产环境下盲目引入 Eruda!这不仅会额外消耗用户的流量、降低页面性能,还可能向外界泄露你的 API 接口和敏感日志。

为此,我们可以设计一个**“后门参数激活”**方案:只有在 URL 后面拼接特定参数(如 ?debug=true)或者连续点击某个区域 5 次时,才动态加载 Eruda。

下面是一个优雅的“按需加载”脚本模板:

(function () {
  // 检查 URL 中是否包含 debug=true 或者处于 Localhost 环境
  const isDebug = /debug=true/.test(window.location.search) || 
                  window.location.hostname === 'localhost' || 
                  window.location.hostname === '127.0.0.1';

  if (isDebug) {
    const script = document.createElement('script');
    script.src = "https://cdn.jsdelivr.net/npm/eruda";
    script.async = true;
    document.body.appendChild(script);

    script.onload = function () {
      eruda.init({
        // 可选配置:自定义面板主题或工具模块
        theme: 'dark',
        tool: ['console', 'elements', 'network', 'resources', 'info']
      });
      console.log('Eruda 调试器已安全加载!');
    };
  }
})();

通过这种方式,只有测试人员知道带有 ?debug=true 的内部测试链接,普通用户访问时绝不会触发调试面板。


常见疑问解答(FAQ)

Q1:有安卓版或者 iOS 版的 APP 吗?

A1:没有。Eruda 不是独立 APP。它是一个纯 JS 编写的网页库,必须嵌入到网页的 HTML/JS 运行。所以不需要下载,只要有浏览器,能在网页里加载 JS,就能用它。

Q2:我听说动漫里也有一个同名的角色?

A2:是的,经典动漫《人形电脑天使心》(Chobits)里有一个叫作 Eruda(爱露塔) 的角色。调试工具的名字确实来源于此,但工具本身与动漫没有直接业务关联。不用担心,搜索工具时请认准官网链接。

Q3:和 vConsole 相比,Eruda 有什么优势?

A3

特性 vConsole (腾讯开源) Eruda
界面风格 简洁大气,大色块微信风 精致专业,高度还原 Chrome F12
元素检查 基础查看(类似纯文本) 支持屏幕点选、修改样式,还原度极高
资源清理 基础查看 支持清晰管理和手动删除 Cookie/Local
JS 控制台 仅支持单行执行 键盘布局舒适,支持多行或全局对象自动补全
适用场景 移动端基础打桩(适合微信小程序/H5) 复杂的单页应用联调,需要高频调整样式的硬核开发

总结

在没有 Eruda 之前,移动端 H5 调试就像在“黑盒”里摸索;有了 Eruda,就等于给你的手机浏览器装上了一台随身携带的显微镜。无论是捕获奇葩的报错,还是查看网络请求,它都是你不可或缺的开发助手。

赶紧把 Eruda 收藏进你的工具箱吧!


相关资源 - Eruda 官方中文网站 - Eruda 官方配置文档 - Eruda GitHub 开源仓库


公众号二维码

长按二维码关注 “边学边练”

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐