说起手机端调试,相比大家都不陌生。
由于手机浏览器没有像PC端浏览器一样有开发调试工具,所以一般手机端的调试都要借助于电脑,现在的调试方式通常有以下几种。
以上这些方法在开发中都尝试过了,各有各的优缺点。
一般开发中手机的远程调试不是强需求,除非遇到一些手机上的奇葩bug, 比如浏览器引擎对js的实现方式差异,需要打印真实数据,chrome模拟器都可以解决90%的问题。
但是每当遇到这种问题时,我还是会纠结到底使用哪个工具来做调试。原因很简单,我只是想把手机的信息打印到电脑浏览器上,不想打断PC端的调试,不想开启其他附属功能,仅此而已。因此我自己写了一个手机端打印的命令行工具,功能和实现都比较简单。
m-console 灵感来自livereload,livereload的实现应该是通过WebSocket来进行浏览器跟本地的通信。页面中引入一个客户端版本的livereload.js文件,当本地文件修改被watch进程捕获后,会通知livereload的WebSocket服务器,服务器通知客户端文件已更新,浏览器中引入的文件监听到这次更新,则调用window.location.reload实现浏览器刷新。
那么,显然我们能用Websocket来做远程调试,通知手机端通知浏览器打印log。
原理如下:
具体实现可查看代码,该命令行工具有以下特点:
文章网址:https://segmentfault.com/u/fwon