這款工具開源已經有些時間了,目前在master已經有188個提交記錄,已經過百的提交記錄應該還算比較積極在更新這個項目了,我們來看張圖片也是他們對這個項目的編碼頻率。

編碼頻率
lightproxy是什么?
阿里巴巴這樣的大公司,最不缺的就是人,最缺的也是人,比如他們缺的是頂級的工程師,不缺的是大量的初級工程師,該公司旗下活躍最高的產品比如淘寶,支付寶都是需要大量的技術人員參與開發。
今天我們的主角就是一款在mac windwos上都能運行的抓包工具,可以說是一款LightProxy 全能代理抓包工具,用了這個工具你就不想再切換其他工具了。

LightProxy 是 IFE 團隊開發的一款基于 Electron 和 whistle 的開源桌面代理軟件,致力于讓前端開發人員能夠精確的掌握自己的開發環境,通過 HTTP 代理使用規則轉發、修改每一個請求和響應的內容。下載地址:https://gw.alipayobjects.com/os/LightProxy/LightProxy-Setup.exe

lightproxy軟件界面
前端為什么需要一個代理工具
因為代理工具能夠讓你隨心所欲的掌控自己當前的開發環境。
開發環境是影響研發效能最大的一個因素之一,不可用的環境,無法完成的部署,不穩定的上游環境等等都讓一個非常簡單的需求輕松消耗掉數天的時間。
當開發環境陷入一種不健康的狀態時,開發者就更容易破罐子破摔。寧可忍受每改一行代碼重新手動 build 幾分鐘再開發也不愿意花時間讓 watch 可用,然后發現自己越來越忙亂。
當你的接口和頁面突然不能工作時,代理工具可以快速 mock 一個。當你想測試一下線上頁面改動可能會帶來的后果,代理工具可以讓你不經過復雜的發布過程快速在本地看到想要的效果。
什么樣的環境能夠讓我們隨心所欲
第一個肯定是希望環境能夠穩定,別搞一下就服務器繁忙,打不開訪問不了等等,穩定的環境可以讓我們快速定位網絡問題出現的原因。
和線上的一致性
很多項目的線上環境極為復雜,為了解決日常開發中的問題,也會有一個線下的 DEMO 頁面,最后開發完再搬到線上。
這種方式相對來說較為穩定且能快速驗證,但比較凸顯的問題在于和線上并不一致。開發中會存在很多 if-else 的邏輯,例如最常見的:
const API_BASE = utils.isDaily ? 'http://localhost:7001:': 'https://xxxx/';
這種情況也往往導致 Bug 非常難以被定位,最后逼著開發者退化到在線上環境低效的進行 debug。
確定性
開發者對于當前的環境應該是有確切認知的,而不是一直不停的懷疑自己的配置到底有沒有生效,命中的是不是又是緩存等等。
有些情況下我們利用 hosts 切換工具來進行聯調,但在切完 hosts 后卻又不得不來回確認自己的切換是否生效,清楚 Chrome 的 DNS Cache,清楚 Socket 之類的。
這種非確定性不但提高了開發者心智負擔,而且也會導致 Bug 難以定位。
LightProxy 能幫你做什么
- 抓包,包括無線場景抓包
- 實時 hosts 綁定
- 按規則轉發資源
- mock 接口,頁面等
- 修改請求和響應內容,例如在頁面中插入 script ,修改返回頭等
在啟動 LightProxy 后,系統代理就會被自動設置到 LightProxy 上。
點擊主界面的 Whistle 標簽頁就能看到 whistle 提供的抓包界面
當我們訪問 https://www.bing.com 時,就能在界面上看到相應的請求細節。
手機抓包
如果需要對手機的網絡請求進行抓包,請參考 無線代理
注意:LightProxy 默認不在局域網可見,對手機抓包必須要點一下手機代理 Tab 才會開啟局域網可見
官網地址:https://lightproxy.org/zh-CN