微信小程序-分包
分包
分包介绍
1、概念
分包是把一个完整的小程序项目,按需分为不同的子包,在构建打包成不同的分包,用户在使用时按需进行加载。可以优化小程序首次启动的下载时间,在多团队开发时可以更好的解耦协作。
分包前,小程序项目中所有的页面和资源都被打包到了一起,导致整个项目体积过大,影响小程序首次启动的下载时间。
分包后,小程序由一个主包+多个分包组成。珠宝一般只包含项目的启动页面或TabBar页面,以及所有分包都需要用到的一些公共资源。分包只包含和当前分包有关的页面和私有资源。
2、加载规则
小程序启动时,默认下载主包,并启动主包内页面,tabBar页面需要放到主包。
当用户进入分包内某个页面时,客户端会把对应分包下载下来,完成后再进行展示。
3、体积限制
所有的分包大小不能超过20M
单个分包/主包大小不能超过2M
使用分包
1、小程序目录结构:
2、在app.json中window平级下使用subpackages节点,具体配置如下
app.json:
1 | "subPackages": [ |
打包原则
1、小程序会按subpackages的配置进行分包,subpackages之外的目录将被打包到主包中。
2、主包也可以有自己的pages(即最外层的pages字段)。
3、tabBar页面必须在主包内。
4、分包之间不能互相嵌套。
引用原则
1、主包无法引用分包内的私有资源。
2、分包之间不能相互引用石油资源。
3、分包可以引用主包内的公共资源。
独立分包
独立分包的概念
1、概述
独立分包本质上也是分包,不过独立分包可以独立于主包和其他分包而单独运行(比如美团和美团外卖)
2、和普通分包的区别
普通分包依赖于主包才能运行,独立分包可以独立运行。
使用独立分包
将上面subpackages节点中需要设置为独立分包的分包,添加independent:true节点。
1 | "subPackages": [ |
引用原则
独立分包和普通分包以及主包之间是相互隔绝的,不能互相引用彼此的资源。
注意:独立分包不能引用主包内的公共资源!
分包预下载
概念
在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面的启动速度。
使用分包预下载
在app.json中,使用preloadRule节点定义分包的预下载规则:
1 | "preloadRule": { |
分包预下载限制
分包预下载最大为2M,所有预下载的分包总和应小于2M。