分包加载尝试不成功,请求协助

  • Creator 版本:2.2.1

  • 目标平台: iOS/Android

  • 详细报错信息,包含调用堆栈:

  • 重现方式:分包加载不起来,必现

  • 出现概率:必现

  • 额外线索:

我们项目微信小游戏代码超过4M了,想尝试分包加载,却发现总是尝试不成功。
game.json 配置正确,手机上试过,其他文件夹也试过,均无法正常加载子包。
提示分包找不到主包的代码,主包也找不到分包的模块。

疑问1:
是否是只要在Cocos Creator 选中某个文件夹,勾选右上角的配置为子包,点击应用,然后在相应位置加载子包(cc.loader.downloader.loadSubpackage)就可以了?

说明1:我是在game.js 里边进行加载的,在其他地方加载会慢于游戏加载,如图:

说明2:这是开发者工具上的截图,我在手机上也是这个报错,我看到说明说Windows上还不支持分包加载。

疑问2:
分包加载,对于被分包的文件夹有没有什么要求?比如,完全独立无依赖的模块才可以用分包吗?
由于代码互相引用,有些模块很早就要被加载到。

疑问3:
我搜了我们论坛的帖子,发现说有一个范例的,但是我在GitHub上似乎已经找不到了,希望可以贴下,供我们参考,非常感谢。

请大佬帮忙解答,万分感谢~

1赞

对的

预览的时候分包无效。[quote=“personalcc20, post:1, topic:89837”]
分包加载,对于被分包的文件夹有没有什么要求?比如,完全独立无依赖的模块才可以用分包吗?由于代码互相引用,有些模块很早就要被加载到。
[/quote]
不是的。不过模块化的顺序肯定是需要注意的。因为你是可以自己控制什么时候加载分包的。

范例的地址是 :https://github.com/cocos-creator/example-cases。你可以自己新建一个范例合集项目,然后找到里面的 Subpackages 即可。

我的加载分包是在场景启动后,在组件脚本中再加载分包的

非常感谢,我打了微信体验版本 ,发现还是有问题,启动主包由于找不到分包的一个模块,导致报错,可能是我的工程相互依赖太严重了,我改掉后再跟大家同步。

我试试把依赖关系清理一下试试,我都在预加载场景之前了,但是还是会报错,主包找不到分包的一个模块。

在加载分包没完成之前,不能使用分包中资源,你的是这个问题吧

是的,是这个问题

1赞

经过大佬们指点,我已经分包成功了,在此把经验分享一波。

  1. 我在微信开发者工具上可以加载子包,不知道你们可不可以。
  2. 分包出去的子包,必须干净,这里的干净是指,主包未加载分包之前,不能引用任何关于分包的代码。
  3. 其他照着这个文档做就够了。https://docs.cocos.com/creator/manual/zh/scripting/subpackage.html

感谢回复的小伙伴@1518609371 @337031709

2赞

非常棒~

nice

你好,我也碰到同样的报错,这个只能更改 代码优化依赖关系吗?请指点一下

https://docs.cocos.com/creator/manual/zh/scripting/subpackage.html

打不开了
404

我遇到的问题跟你相反,加载分包的时候分包代码执行出现异常,提示加载不到主包里某个代码,文件subpackages/sub1/game.js执行出现异常
Error: Cannot find module ‘md5.js’。有人知道怎么解决这个问题么,我用的是 2.3.3版本