各位有什麼提高前端部署速度的經驗呢?

隨著項目越來越大,前端上線一次的構建時間也會增長。

完成一個需求之後,花幾分鐘上線還是可以接受的,但是如果遇到緊急的 bug,上線花的時間越長,損失也就越大。

對於提高上線速度,我個人的想法主要有:1. 分析各項任務的花銷,以及文件的構成,有針對性的做一些優化;2. 進行增量式打包,只對每次上線時發生變化的文件(及與其有依賴關係的文件)打包。

不知各位同學有什麼經驗教訓可以分享的嗎?


首先,遇到緊急的bug一時改不好,不要想著再解決,而應該是首先回退到上一個正常的版本,再在開發環境解決。或者對這個頁面做下線或者關閉入口功能。這部分當然也需要後端來配合,畢竟一些功能捆綁太深。做好緊急預案總比臨時一群人改來改去浪費時間要從容的多。

然後再說上線的問題。

打包做增量,本地做緩存,開發做watch,環境配debug,上線走版本管理,更新用分發,流程用腳本,減少人工干擾。

就這樣子…


一條最重要的經驗,將構建和部署區分開來。

我司前端發布現在是這樣的。構建與部署分離,構建可以選擇本機構建和雲端機構建兩種,針對靜態資源的部署有覆蓋式部署(覆蓋式其實是由構建工具負責緩存版本的控制)和增量式部署兩種。

部署階段又分為靜態資源CDN部署,和動態資源的部署,兩者一先一後。上線的關鍵步驟,實質是動態資源的部署這一步,而回滾操作也只需要反轉這一步即可,這一步只需要秒級別的時間就能完成。

另一條重要經驗。負責或者重大發布必須制定發布計劃,對異常場景要有處理預案,如果發生嚴重問題,那麼一定要先回滾。

至於題主說的性能分析和優化、增量打包,是一個思路,不過能提升的速度有限,而且可操作性也比較低。


可以試試我們做的這個,團隊用起來還是很順手的:wdfe/ideploy


推薦閱讀:

多台雲主機的如何實現一鍵自動部署發布?

TAG:前端開發 | 部署 | 前端工程化 |