关于v2.4以上的小游戏代码分包的小例子

1.首先按照官方文档的说法是,主包和子包之间,尽量逻辑不要互相关联,但是不可能完全做到毫无关联,然后官方也提供了解决办法,以下是layabox和creator的文档截图片段

【layabox】文档片段


【creator】文档片段

2.建议就是:在项目开发前期,就确定好是否后期需要使用微信小游戏的分包功能(这里指的是代码分包),这样早确定,早规划好脚本之间的引用关系

3.按照官方文档中的说法,主包和子包之间逻辑关联性越小越好,经过demo的测试,子包可以引用主包的代码,主包不要去引用子包的代码,不然会报错

4.【demo】演示部分

1.整体结构规划

2.将我们要分包的srcipts文件夹设置为小游戏子包
Snipaste_2021-01-20_15-54-50

3.在启动场景的脚本HelloWorld中加载子包的代码

4.第四步,构建项目,进行测试

5.在微信ide中,可以看到分包script已经加载成功的提示
Snipaste_2021-01-20_15-58-03

总结:在分包的代码加载完成之后,子包中的代码才会正常执行,不知道哪位大佬知道,如果是项目已经开发完毕了,但是项目要做分包的时候,脚本目录结构比较复杂,脚本之间引用关系也很复杂的这种项目,后期如何做代码分包呢?还望指点指点

demo-subpackage-master.zip (969.7 KB)

--------------------补充更新

如果我们在主包的代码中,引用了小游戏子包中的脚本,当构建成功之后,主包的index文件中会有如下信息:


其中“…/scripts/Manager/AssetManager”就是引用的子包中的脚本

在微信ide中运行就会出现下面的报错:

另外需要注意的是:比如我们这个demo中我们只对srcipts这个目录进行了代码分包,那么在这个目录之外的所有脚本文件都会被压缩到主包中去,这个得注意下

主包调用子包,需要确保子包已经加载完毕了吧