繆斯某團隊使用Vue2.0框架開發前端頁面。
2019年初上線產品,截止2020年下半年生產上有業務7大型別
,頁面281個
,打包後大小為180+MB
。 隨著時間的增長,產品逐漸出現以下現象:
大部分都是
業務邏輯豐富
,圖片靜態資源元件繁多
的頁面。業務中引入了
大量的腳手架
專案錯綜複雜,前後有多批人馬進行開發,造成了目前專案各種資源型別混亂,元件可複用性低,靜態資源龐大,垃圾元件越來越多。
前端Vue專案的高速增長使得專案出現了編譯慢
、打包慢
、上線慢
等亟待解決的問題。
目前產品主要弊端有:
- 編譯太慢。專案中頁面多,資源大。如果所有頁面全部編譯,沒有3分鐘絕對編譯不完。(這還是在開發過程中每次都儲存頁面)
- 打包速度太慢,我一個同事的macbook air打包速度是在半小時左右。有好多新來的同事第一次打包都會跑來問,是不是死掉了,為什麼停住不動了。(我的電腦算是所有人最快的,但是也需要10分鐘+)
- 上線風險高。前端Vue工程是每次整體打包,全量上線。網上有一句話說“不要把雞蛋放在一個籃子裡”。打包如果沒有專人維護,所以可能會造成有的功能莫名其妙被影響,開發人員就算再小心也有錯提,誤刪的情況發生,影響其他業務。
- 工程和打包後的體積越來越大,不符合敏捷迭代思想。Vue工程資源越來越多,170MB+、200MB+乃至300MB+,如果不做下線和清理,專案就會變的不可維護。
我們的工程組織結構 | 正常的工程組織結構 |
---|---|
從 顏色 和 模組數量 上就可以發現,我們的專案很大,是不健康的。
通過對繆斯產品的分析,然後結合網際網路提出的中小型企業所面臨的問題。
梳理出 vue-module-pro 需要解決以下問題:
- 獨立部署 : 每一個模組可單獨部署,顆粒度可小到某一個單頁面的獨立部署,不對其他模組有任何影響
- 擴充套件 : 每一個微模組可以獨立橫向擴充套件以滿足業務伸縮性,與資源的不必要消耗
- 風險降低 : 通過“將雞蛋放在多個籃子裡”的方式降低業務風險。每次只需要操作對應的微模組,其他微模組不受影響
- 複雜度可控 : 每一個UI業務元件歸屬每一個微模組,避免程式碼巨無霸,高效並且降低複雜度,便於維護同時提升開發效率
- 相互通訊 : 全域性可以進行通訊,微模組間的元件可以相互引用。
vue-module-pro 作為一款高效能的 前端微服務化 解決方案,能夠解決上述的所有問題。
同時,融入了目前網際網路上Vue的最新思想和設計理念,取其精華、去其糟粕。
解決了生產問題 ,融入了新的設計思想和理念 ,開發了多種實用的前端工具 ,同時對 公司舊框架可以平滑升級 。
任何人都能快速上手本專案。
本作品採用《CC 協議》,轉載必須註明作者和本文連結