1.首先按照官方文档的说法是,主包和子包之间,尽量逻辑不要互相关联,但是不可能完全做到毫无关联,然后官方也提供了解决办法,以下是layabox和creator的文档截图片段
【layabox】文档片段
【creator】文档片段
2.建议就是:在项目开发前期,就确定好是否后期需要使用微信小游戏的分包功能(这里指的是代码分包),这样早确定,早规划好脚本之间的引用关系
3.按照官方文档中的说法,主包和子包之间逻辑关联性越小越好,经过demo的测试,子包可以引用主包的代码,主包不要去引用子包的代码,不然会报错
4.【demo】演示部分
1.整体结构规划
2.将我们要分包的srcipts文件夹设置为小游戏子包
3.在启动场景的脚本HelloWorld中加载子包的代码
4.第四步,构建项目,进行测试
5.在微信ide中,可以看到分包script已经加载成功的提示
总结:在分包的代码加载完成之后,子包中的代码才会正常执行,不知道哪位大佬知道,如果是项目已经开发完毕了,但是项目要做分包的时候,脚本目录结构比较复杂,脚本之间引用关系也很复杂的这种项目,后期如何做代码分包呢?还望指点指点
demo-subpackage-master.zip (969.7 KB)
--------------------补充更新
如果我们在主包的代码中,引用了小游戏子包中的脚本,当构建成功之后,主包的index文件中会有如下信息:
其中“…/scripts/Manager/AssetManager”就是引用的子包中的脚本
在微信ide中运行就会出现下面的报错:
另外需要注意的是:比如我们这个demo中我们只对srcipts这个目录进行了代码分包,那么在这个目录之外的所有脚本文件都会被压缩到主包中去,这个得注意下