天天看点

Egret小游戏如何实现代码分包(含代码绝对干货)

随着游戏往重度方向发展,游戏代码包越来越大,为了更好的加载体验,分包加载迫在眉睫。

早在2018年微信小游戏就推出分包API了,但是白鹭引擎官方却迟迟没发布高效的分包解决方案,就目前能找到的分包方案,却有很多问题。

我们先来分析一下目前公开的方案:

方案1:白鹭官方推出的资源分包,只能针对素材分包,没无法针对js代码分包,这里查看文档

方案2:在方案1的基础上,自己把原项目拆分成几个独立项目,一个分包对应一个项目,用类库的方式进行编译输出js。这种方式开发时不灵活,需要管理太多的项目,很不方便。

方案3:白鹭在5.3.6引擎推出了webpack 编译模式,提供的WebpackBundlePlugin插件支持js拆分输出,但是该方式有问题:拆分输出的文件必须一次性加载才能运行,无法按需加载(分包加载),详情参考这里(截止到2021年8月官方还未修正)

目前公开渠道能找到的这几种方法都解决不了实际需求,那就只能自己开发了。

需求目标:开发的时候只有1个项目,根据文件夹将代码编译出多个独立的js,输出

继续阅读