拥有一款好用的移动端调试工具,在开发和调试 BUG 的过程中,都能快速提升开发效率和定位问题的能力。
前言#
在移动端 Web 开发的项目中,由于移动端设备的多样性,IOS 系统的兼容性,不同安卓设备的 Webview 兼容性的不同,而 PC 端的浏览器开发者工具又很难复现问题,拥有一款好用的移动端调试工具,在开发和调试 BUG 的过程中,都能快速提升开发效率和定位问题的能力。
以下是我在开发过程中使用过的几款调试工具。
vConsole#
vConsole 是由微信公众平台前端团队开源的一个轻量、可拓展、针对手机网页的前端开发者调试面板,可用于展示 console 日志,方便开发、调试。
Github: https://github.com/Tencent/vConsole
在线体验地址:http://wechatfe.github.io/vconsole/demo.html
特性:
- 查看 console 日志
- 查看网络请求
- 查看页面 element 结构
- 查看 Cookies、localStorage 和 SessionStorage
- 手动执行 JS 命令行
- 自定义插件
快速上手:
- Script 引入:
<head>
<script src="http://wechatfe.github.io/vconsole/lib/vconsole.min.js"></script>
<script>
var vConsole = new VConsole();
</script>
</head>
为了便于后续扩展,建议在 中引入:
- NPM
npm install vconsole
import vConsole from "vconsole";
const vConsole = new VConsole();
eruda#
Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、捕获 XHR 请求、显示本地存储和 Cookie 信息等等。
Github:https://github.com/liriliri/eruda
在线体验地址: https://eruda.liriliri.io/
特性:
-
按钮拖拽,面板透明度大小设置。
-
Console 面板:捕获 Console 日志,支持 log、error、info、warn、dir、time/timeEnd、clear、count、assert、table;支持占位符,包括 % c 自定义样式输出;支持按日志类型及正则表达式过滤;支持 JavaScript 脚本执行。
-
Elements 面板:查看标签内容及属性;查看应用在 Dom 上的样式;支持页面元素高亮;支持屏幕直接点击选取;查看 Dom 上绑定的各类事件。
-
Network 面板:捕获请求,查看发送数据、返回头、返回内容等信息。
-
Resources 面板:查看并清除 localStorage、sessionStorage 及 cookie;查看页面加载脚本及样式文件;查看页面加载图片。
-
Sources 面板:查看页面源码;格式化 html,css,js 代码及 json 数据。
-
Info 面板:输出 URL 及 User Agent;支持自定义输出内容。
-
Snippets 面板:页面元素添加边框;加时间戳刷新页面;支持自定义代码片段。
快速上手:
- 通过 CDN 使用:
<script src="//cdn.jsdelivr.net/npm/eruda"></script>
<script>eruda.init();</script>
- NPM
npm install eruda --save
<script src="node_modules/eruda/eruda.js"></script>
<script>eruda.init();</script>
vconsole 和 eruda 功能类似,都是在移动端网页内置一个 console 面板,但是,使用起来却不是很方便,比如在调试某个元素的时候,由于手机端屏幕的局限性,操作起来并不方便,下面将介绍两个最具代表性的远程调试工具。
Weinre#
Weinre 代表Web Inspector Re mote,是一种远程调试工具。
Weinre 作为一种远程调试工具,在结构上分为三层:
- 目标页面(target):被调试的页面,页面已嵌入 weinre 的远程 js;
- Debug 客户端(client):本地的 Web Inspector 调试客户端;
- Debug 服务端(agent):一个 HTTP Server,为目标页面与 Debug 客户端建立通信。
快速开始:
安装:
npm install -g weinre
命令行启动:
weinre --httpPort 8080 --boundHost -all-
打开谷歌浏览器(-webkit 内核)输入:http://127.0.0.1:8080/
然后添加 Debug Target:
在你需要调试的页面添加如下 script(ip):
<script src="http://你的ip:8080/target/target-script-min.js#anonymous" type="text/javascript"></script>
然后在手机端打开调试页面,手机需要和电脑在同一 WIFI。
最后回到最开始打开的http://127.0.0.1:8080 ,点击 “debug client user interface:” 如果没有问题的话,就已经成功添加了 Debug Target。
注意:我目前还没有使用过这个工具,详细的使用指南请查看:https://github.com/nupthale/weinre
Chii#
Chii 是与 weinre 一样的远程调试工具,主要是将 web inspector 替换为最新的 chrome devtools frontend.
Github:https://github.com/liriliri/chii
Chii 和 Weinre 相比,调试界面变成了 Chrome 的开发者工具,更加友好。
快速开始:
安装:
npm install chii -g
启动:
chii start -p 8080
在你要调试的页面注入以下脚本:
<script src="//你的ip:8080/target.js"></script>
然后就可以访问 localhost:8080 开始调试页面。
是不是很简单,你可以在手机上进行操作,然后在 PC 端的调试面板中查看元素和 log 输出。
总结#
以上就是移动端调试工具的相关分享,类似的工具还有很多,最出名的就是以上几种吧,还有一些类似的工具如:
https://github.com/wuchangming/spy-debugger, 但是我还没有用过,以后有更好用的再来分享。