Eruda 一個可能被人遺忘的調試神器

Eruda 是一個專爲手機網頁前端設計的調試面板,類似 DevTools 的迷你版,其主要功能包括:捕獲 console 日誌、檢查元素狀態、捕獲XHR請求、顯示本地存儲和 Cookie 信息等等。,首席填坑官∙蘇南的專欄 交流:912594095、公衆號:honeyBadger8,首席填坑官∙蘇南

引言

​  日常工作中再牛逼的大佬都不敢說自己的代碼是完全沒有問題的,既然有問題,那就也就有調試,說到調試工具,大家可能對於fiddlerCharleschrome devtoolsFirebug、還有Safari遠程調試等比較熟悉,甚至有些是我可能也沒有用過的;

  這裏噴一句吧,誰都別給我提IE啊,IE那個不叫調試工具,那叫坑爹神器,話說最近不是又甩鍋了,把自己的革命老根據地都甩了。

  俗話說預先善其事必先利其器,今天想給大家分享的是一個可能被人們忽略的小工具,爲什麼說被人們忽略呢?因爲發現github上它才4.6k Star、457 ForkWatch 173次,也就是說千萬開發者中知道它的人可能不超過5w,於是決定分享一波,此文重在引導,希望能幫大家開發中帶來一點點便利、效率的提升

在日常的移動端開發時,一般都是試用chrome瀏覽器的移動端模式進行開發和調試,只有在chrome調試完成,沒有問題了纔會上到真機測試,移動端,寶劍鋒從磨礪出,梅花香自苦寒來,做有溫度的攻城獅!,公衆號:honeyBadger8,首席填坑官∙蘇南

這裏是IT平頭哥聯盟,我是首席填坑官蘇南,用心分享 做有溫度的攻城獅。
公衆號:honeyBadger8,羣:912594095。

Eruda是什麼?

  Eruda是什麼?Eruda 是一個專爲前端移動端移動端設計的調試面板,類似Chrome DevTools 的迷你版(沒有chrome強大 這個是可以肯定的),其主要功能包括:捕獲 console 日誌、檢查元素狀態、顯示性能指標、捕獲XHR請求、顯示本地存儲Cookie 信息、瀏覽器特性檢測等等。

  雖說日常的移動端開發時,一般都是在用Chrome DevTools瀏覽器的移動端模式模擬各種手機型號來進行開發和調試,確保功能/頁面展示等都沒有問題了,纔會提交測試;

  但是前面都講了,只是模擬模擬,當下手機品牌可算是千千萬,手機中各種類瀏覽器,甚至APP都有自己不一樣的特色 腰間盤突出,有的還特別突出,有病我們得給它治啊,不然測試、產品、需求、領導都不會放過我們,比如下圖場景。

首席填坑官∙蘇南的專欄 交流:912594095、公衆號:honeyBadger8

如何使用?

  • 它支持npm方式的,這個是不是很開心??
  • 外鏈,沒錯,就是外鏈的形式引入,對於它,我覺得npm的方式沒有什麼太大意義,直接以外鏈的引入更方便,也能減少項目資源包的大小,更便於控制是否要加載這個資源。
方式一,默認引入:
<script src="//cdn.jsdelivr.net/npm/eruda"></script>
<script>eruda.init();</script>

方式二,動態加載:

__DEBUG__ && loadJS('http://cdn.jsdelivr.net/eruda/1.0.5/eruda.min.js', ()=>{
  eruda.init();
});//蘇南的專欄 交流:912594095、公衆號:honeyBadger8

方式三 ,指定場景加載:
//比如線上 給自己留一個後門,
//我們一般的做法是喜歡給某個不起眼的元素,添加一個點擊事件,要點它十次、八次以後纔開啓 debug 模式;
;(function () {
    var src = 'http://cdn.jsdelivr.net/eruda/1.0.5/eruda.min.js';
    if (!/eruda=true/.test(window.location) && localStorage.getItem('active-eruda') != 'true') return;
    document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>');
    document.write('<scr' + 'ipt>eruda.init();</scr' + 'ipt>');
})();

方式四 ,npm:
 npm install eruda --save

…… 加載的方式很多

小而美

  • 這裏小,不是指它的包小啊,知道它的同學都知道,其實它的包並不小(約100kb gzip);
  • 100kb不小了,用形容妹子的話來說就是:豐滿,直接說它胖,你就死定了;
  • 這裏的小而美是指小巧功能也強大,界面也好看;
  • 說了這麼多 來看看它到底長啥樣吧:

做移動端Web開發的一大痛點就是,在真機運行下無法查看console.log日誌和其他信息如網絡請求、顯示本地存儲等信息。如果網頁是運行在手機瀏覽器中還算好,可以把網址在電腦上打開查看console信息,但是如果是做APP的內嵌H5頁面,那就只能靠開發階段在瀏覽器模擬環境中儘量沒有Bug,公衆號:honeyBadger8,蘇南的專欄

功能清單

console

  • console 的作用就不用廢話了,大家都懂;
  • 早期在console誕生之前,我們的調試功能都是alert過多,包括現在的移動端,在手機上我們想看到參數值、數據、節點等都以alert打印爲多數,但過於粗暴、而且一不小心有可能帶到線上去了;
  • eruda 能幫我們解決這個問題;所有的日誌、錯誤都能幫我們捕獲到
  • 甚至我們還能像chrome,直接在控制檯執行js代碼;

蘇南的專欄,微信開發必備】h5開發調試,利器Eruda ,公衆號:honeyBadger8

Elements

  • eruda 它沒有在PC端這麼直觀,但也因爲在移動端展示的方式侷限性,
  • 它能把每一個父節點下的每一個子節點全部列出來;你點擊某個子節點時,列出當前節點全部的屬性、樣式、盒子模型等;
  • 查看標籤內容及屬性;查看Dom上的樣式;支持頁面元素高亮;支持屏幕直接點擊選取;查看Dom上綁定的各類事件。
  • 甚至也能使用Plugins 插件,做到跟PC端一樣,形成 dom tree;

蘇南的專欄,使用神器eruda 進行移動端調試-,公衆號:honeyBadger8
PC、Mobile調試節點對比

Network

  • 現在的項目大多都是前後端分享的形式了,前端處理的業務越來越多、各種請求資源等;
  • 乾的越多承擔責任也越多、鍋也越多,又大又平的那種哦~
  • 所以 Network 的必要性不言而喻,它能捕獲請求,查看發送數據、返回頭、返回內容等信息,它對於我們平時前後端聯調出現的問題定位是有很大幫助的,比如:後端說你請求參數少了,前端你看了代碼邏輯沒有問題,但在手機上就是調不通,Network 能很直接明瞭的看到你請求帶了什麼。

The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, ... HTTP is designed to permit intermediate network elements to improve or enable communications between clients and servers,vConsole便是這樣一款很棒的移動端DevTools工具,由大廠企鵝出品。但本文把他定位爲男二號,今天的主角男一號是:Eruda!vConsole的同類。蘇南的專欄,PC、eruda 數據請求對比

Resources

  • 它跟 Chrome Devtools 裏的 Application + Source,兩者的結合體;
  • Resources 它能查看 Cookie、localStorage、sessionStorage等信息,並且還能執行清除操作(Application);
  • 它還查看當前頁面加載腳本及樣式文件;查看頁面加載過的圖片等資源(Source);
  • 好吧,感覺說的再多,也不如上圖直接:

有哪些關於前端開發技術HTML、CSS、JavaScript 等值得推薦的書籍? 從菜鳥到大 ... 鋒利的jQuery第2版 【書籍】. Js知識點. JavaScript深入系列15篇正式完結!Resources 功能分析

Sources/Info

  • Sources:查看頁面源碼;格式化html,css,js代碼及json數據。
  • Info:主要輸出URL信息及User Agent;及其他的一些手機系統信息,同時也支持自定義輸出內容哦。

通常寫前端頁面都在Chrome瀏覽器的開發模式下進行調試,但是寫放在移動端的H5頁面時,有時候會遇到在Chrome上調試沒有問題,但是在手機的瀏覽器上有問題的情況;也有的頁面是需要放在微信公衆號中的,調用了微信JSSDK的方法,必須得通過手機上的微信內置瀏覽器才能使用,這個時候如果遇到了報錯,只能夠通過alert一步一步地定位問題。今天發現了一個好用的可以在手機瀏覽器上直接定位問題的插件:eruda.js,Resources 功能分析

高階用法

  • 以上剛纔介紹的是它的一些基本的功能,也是我自己在工作中用的較多的;
  • 最近發現新版本功能要強大不少,之前一直用的1.0.5,好像是沒有插件這一項的;
  • 大概看了一下,都蠻強大,包括上面的Dom tree,插件這部分並沒有都實際應用過,所以也就不打腫臉充胖子了,有興趣的同學可以自己看看。
  • 如果覺得已經的插件都滿足不了你的需求,它還支持自定義插件自己編寫。

These share data are from my usual work and learning,hoping to help you,If you like you can star. Javascript. Article, Article. Javascript深淺 ,Resources 功能分析,蘇南的專欄

結尾:

  以上就是今天給大家帶來的分享,工作中用了蠻久,挺方便的,對於定位移動端的疑難雜症問題、甚至留下後門定位線上問題都有很大幫助,如文中有理解不到位之處,歡迎留言指出。

  線上問題我們一般的做法是喜歡給某個不起眼的元素,添加一個點擊事件,要點它十次、八次以後纔開啓 debug 模式;

  上面二維碼確實是真實的官方Demo,不用擔心有套路,也有鏈接:https://eruda.liriliri.io/
Github 地址:https://github.com/liriliri/eruda

IT平頭哥聯盟主要分享前端、測試 等領域的積累(前端開發、HTML、CSS/CSS3、新手上路、javascript、js、自動化、性能、接口系列),蘇南,首席填坑官,平頭哥,蜜獾,個人博客——寶劍鋒從磨礪出 梅花香自苦寒來,曾想仗劍走天涯 後來BUG太多就沒去了,蘇南的專欄

其他

作者:蘇南 - 首席填坑官
鏈接:http://susouth.com/
交流:912594095、公衆號:honeyBadger8
本文原創,著作權歸作者所有。商業轉載請聯繫@IT·平頭哥聯盟獲得授權,非商業轉載請註明原鏈接及出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章