天天看點

Egret小遊戲如何實作代碼分包(含代碼絕對幹貨)

随着遊戲往重度方向發展,遊戲代碼包越來越大,為了更好的加載體驗,分包加載迫在眉睫。

早在2018年微信小遊戲就推出分包API了,但是白鹭引擎官方卻遲遲沒釋出高效的分包解決方案,就目前能找到的分包方案,卻有很多問題。

我們先來分析一下目前公開的方案:

方案1:白鹭官方推出的資源分包,隻能針對素材分包,沒無法針對js代碼分包,這裡檢視文檔

方案2:在方案1的基礎上,自己把原項目拆分成幾個獨立項目,一個分包對應一個項目,用類庫的方式進行編譯輸出js。這種方式開發時不靈活,需要管理太多的項目,很不友善。

方案3:白鹭在5.3.6引擎推出了webpack 編譯模式,提供的WebpackBundlePlugin插件支援js拆分輸出,但是該方式有問題:拆分輸出的檔案必須一次性加載才能運作,無法按需加載(分包加載),詳情參考這裡(截止到2021年8月官方還未修正)

目前公開管道能找到的這幾種方法都解決不了實際需求,那就隻能自己開發了。

需求目标:開發的時候隻有1個項目,根據檔案夾将代碼編譯出多個獨立的js,輸出

繼續閱讀