文档中心 > 开发指南

分包加载-小游戏接入指南

更新时间:2024/08/21 访问次数:2213

版本要求:依赖手机淘宝客户端 9.15.0 或更高版本;淘宝开发者工具 1.15.0 或更高版本。

为了满足日益复杂的小游戏业务需求,同时提升首次打开速度,小游戏从手淘客户端 9.15.0 版本开始支持分包加载功能。

开发者可以按需将小游戏划分为若干个不同的子包。小游戏使用分包功能时,会默认有一个主包,启动页面和 tabBar 所有页面都放在主包中,同时包含了小游戏所需的公共资源(例如 js 脚本等)。在服务端构建时,会根据开发者的配置,打成不同的分包,用户在使用小游戏进入对应分包的页面时,客户端会下载该分包,并进行解析和渲染。

使用建议

1)对体积较大的小游戏项目,或JS执行时间过长,建议使用此功能。

2)主包只保留最常用的核心页面(首页、tabBar 页面和其他公共资源),将小游戏中不经常使用的页面放到多个分包中,启动时只加载主包,使用时按需下载分包,不要一次性下载整个代码包,以提升首页启动速度。

3)对于包含大量资源文件的互动类型小游戏,可以将资源文件也进行分包,然后通过调用my.loadSubPackage接口加载分包资源,以提升用户体验。

4)如果小游戏由不同的团队协作开发,建议使用此功能。

分包大小限制

1)单个主包大小不能超过4MB

2)单个分包大小不能超过5MB

3)主包+分包大小不能超过20MB

使用方法

分包配置

代码分包

包含JS的文件夹只能设置为代码分包。

在 cocos或laya 等游戏引擎上设置bundlle的压缩类型为【淘宝小游戏分包】。游戏引擎构建导出后可自动在game.json中设置分包信息。

导出后game.json中包含以下配置。

{
  "subpackages": [
    {
      "name": "subPackageA",
      "root": "stage1/" // 可以指定一个目录,目录根目录下的 game.js 会作为入口文件,目录下所有资源将会统一打包
    }, {
      "name": "subPackageB",
      "root": "stage2.js" // 也可以指定一个 JS 文件
    }
  ]
}

资源分包

纯资源素材的文件夹可设置为资源分包,并提供存储素材文件的CDN域名地址,可降低包大小,提升首屏启动速度。注意:设置远程分包后,导出的淘宝小游戏里面的remote文件需要删除

 

分包加载

调用加载分包,示例代码如下:

my.loadSubPackage({
   name: 'packageA/config.json', //这里只能使用name,不能使用root路径
   success:  (res) => {
     this.setData({
       subpackageReady:true
     })
     console.log("download success")
   },
   fail: function (res) {
     console.log(res)
     console.log("download fail")
   }
  })

分包构建

分包需要在IDE -> 「详情」 勾选 「预览、调试时使用云构建」,否则分包无效的。

 

打包与引用原则

1)开发者配置 subPackages 后,服务端将按 subPackages 配置的路径进行打包,subPackages 配置路径外的目录将被默认打包到主包中。

2)启动页面和 tabBar 的所有页面都必须放在主包中。

3)每个分包的根目录不能是另外一个分包内的子目录。

4)分包之间不能相互引用对方包中的资源(比如图片和 js 脚本等),分包可以引用主包和自己包内的资源。

5)分包和主包是分别独立打包的,同一个js模块会在主包和分包中分别存在。

常见问题

Q:小游戏超过大小限制,应该分包还是减少模块?

A:小游戏主包最大限制是 4M,如果超过了可以进行代码优化,删除一些不必要的依赖包;或者把一些图片放到服务器中远程加载来减小包的大小。以上手段均已尝试,且仍然超过了大小限制,则可以使用小游戏分包。

FAQ

关于此文档暂时还没有FAQ
返回
顶部