随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以我们推出了小游戏分包加载这一个功能。所谓的分包加载,即把游戏内容按一定规则拆分这几包,在首次启动时先下载必要的包,这个必要的包我们称为「主包」,开发者可以在主包内触发其它分包的下载,从而把首次启动的下载耗时分散到游戏运行中。

    目前小游戏分包大小有以下限制:

    • 单个分包/主包大小不能超过 4M

    需要先在 配置分包信息。

    假设游戏的目录结构如下:

    配置在 字段内的目录或 js 文件,将按照配置打包成一个个「分包」,没有配置在 subpackages 中的目录和 js,将会被打包到主包中。

    注:目前不支持将开放数据域目录(即 配置目录)设置为分包或置于某个分包下。

    我们提供了 API 来触发分包的下载,调用 wx.loadSubpackage 后,将触发分包的下载与加载,在加载完成后,通过 wx.loadSubpackage 的 success 回调来通知加载完成。

    同时,wx.loadSubpackage 会返回一个 LoadSubpackageTask,可以通过 LoadSubpackageTask 获取当前下载进度。

    由微信后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。对于老客户端,会去下载整包代码启动。

    开发者在基础库 2.1.0 以下的版本不需要调用 wx.loadSubpackage 触发加载,2.1.0 以下版本不存在 wx.loadSubpackage 方法。

    老版本下,需要开发者调用 require 触发分包入口文件的加载,例如:

    微信 6.6.7 以下客户端开发版/体验版因历史兼容问题无法打开分包小游戏,正式发布版不受影响。如果不打算兼容老版本,开发者可以通过 mp 小程序后台配置端屏蔽 2.1.0 以下基础版的用户。