为什么要分包
在小程序启动时,默认会下载主包并启动主包内页面, 如果主包过大,会导致整个项目只有在主包全部加载完毕之后才会展示在用户界面
分包的限制
小程序官网解释如下:
- 整个小程序所有分包大小不超过 20M
- 单个分包/主包大小不能超过 2M
分包的好处
对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。
使用分包
- 在manifest.json中 mp-weixin 对象配置
"optimization": { "subPackages": true } // 开启分包优化
- 新建一个同级目录存放分包后的页面 例如: subPages
├── pages // 主包
├── subPages // 分包
├ └── order
├ ├── order.vue
- 配置pages.json
"subPackages": [
{
"root": "subPages", // 分包根目录
"name": "subPages", // 分包别名,分包预下载时使用
"pages": [ // 分包页面路径,相对与分包根目录
{ "path": "order/order" }
]
}
]
分包预下载
- 同样是配置pages.json
"preloadRule": {
"pages/index/index": {
"network": "all",
"packages": ["subPages"]
}
},
pages/index/index: 进入的页面
network: 在指定网络下预下载,默认值为wifi
可选值:
all: 不限网络
wifi: 仅wifi下预下载
预下载限制
同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。
如,页面 A 和 B 都在同一个分包中,A 中预下载总大小 0.5M 的分包,B中最多只能预下载总大小 1.5M 的分包。
分包跳转
uni.navigateTo({
url: '/subPages/order/order'
})
// 区别就在于把包名变成了分包的包名
一篇uniapp分包的记录文,此文分包只对应小程序,如果操作无效,可以尝试重新编译小程序。