小程序上线之前要进行分包
原因:
- 小程序要求压缩包体积不能大于2M,否则无法发布
- 实际开发中小程序体积如果大于2M就需要使用分包机制进行发布上传
- 分包后可解决2M限制,并且能分包加载内容,提高性能
- 分包后单个包的体积不能大于2M
- 分包后所有包的体积不能大于20M
一:常规分包
- 开发者通过在 app.json subpackages 字段声明项目分包结构
- 特点:
a)加载小程序的时候先加载主包,当需要访问分包的页面时候才加载分包内容
b)分包的页面可以访问主包的文件,数据,图片等资源
c)主包:
i.主包来源: 除了分包以外的内容都会被打包到主包中
ii.通常放置启动页/tabBar页面(一上来就需要显示的页面) - 使用
1)新建一个songPackage文件来放置需要分包的文件——>结构和主包保持一致,所以在songPackage下新建一个pages来放置分包的文件——>把需要分包的文件夹从主包中移动到分包的pages下
2)结构搭建完成后,需要对app.json中的内容进行修改,需要添加subpackages 字段声明项目分包结构,同时需要删除主包pages下分包的路径,如下:
app.json
"subpackages":[
{
"root": "songPackage", //声明根目录
"pages": [
"pages/recommendSong/recommendSong", //分包路径(相对于分包的根目录)
"pages/songDetail/songDetail"
]
}
二:独立分包
- 设置independent为true
- 特点:
a) 独立分包可单独访问分包的内容,不需要下载主包
b) 独立分包不能依赖主包或者其他包的内容 - 使用场景
a)通常某些页面和当前小程序的其他页面关联不大的时候可进行独立分包
b)如:临时加的广告页 || 活动页
三:分包预下载
- 配置
a)app.json中设置preloadRule选项
b)key(页面路径): {packages: [预下载的包名 || 预下载的包的根路径])} - 特点:
a)在加载当前包的时候可以设置预下载其他的包
b)缩短用户等待时间,提高用户体验