分包的加载配置
小程序有体积和资源加载限制 各个平台都提供了分包方式 优化小程序的启动速度和下载
所谓的主包 就是在pages.json里面的pages数组 也就是默认启动页面
主包页面
"page.json"
// 数组中的第一项表示应用的启动页面
"pages": [
{
"path": "pages/home/home",
"style": {}
},
{
"path": "pages/cart/cart",
"style": {}
},
{
"path": "pages/list/list",
"style": {}
}
],
"subPackages": [{}],
"tabBar": {}
"preloadRules": {}
subPackages分包配置
分包则是根据pages.json里面的subPackages进行配置划分的
subPackages里的路径是 root下的相对路径 不是全路径
subPackages节点接收一个数组 数组每一项都是对应的子包
对应值 root 子包的根目录 pages 子包由哪些页面组成的
"pages.json"
"subPackages": [
// 分包页面
{
"root": "pageA",
"pages": [
{
"path": "pageA/list.list",
"style": {
"navigationBarTitleText": "", // 导航栏标题内容
"enablePullDownRefresh": false // 是否开启下拉刷新
}
}
]
},
{
"root": "pageB",
"pages": [
{
"path": "pageB/detail/detail",
"style": {
"navigationBarTitleText": "", // 导航栏标题内容
"enablePullDownRefresh": false // 是否开启下拉刷新
}
}
]
}
]
preloadRule预下载规则
配置preloadRule后,进入小程序某个页面时,由框架自动与下载需要的分包,提升进入后续启动速度
preloadRule参数 key是页面路径,value进入页面的预下载配置
packages 字符串数组 进入页面后预下载分包root App表示主包
network all不限网络 wifi仅wifi下载
app分包 同支持preloadRule 但网络规则无效
{
"preloadRule": {
"pageA/index/index": {
"packages:" ["pageA"],
"network": "all"
},
"pageB/list/list": {
"packages": ["__App__"],
"network": "all"
}
}
}
体积限制
总体积不能超过20M
单个分包/主包/不超过2M
uniapp小程序打包体积过大
把图片压缩一下 避免静态资源占用太多内存
开发时阶段 把运行时是否压缩代码勾选上
如果还是过大采用分包 配置分包路径已经在pages.json中已经配置好了
重点 分包之后 主包分包体积都没有超过2M 但是微信开发者工具想要真机调试,这时候提示主包体积过大
大概提示main packageXXXXXX
解决配置 根目录下面 manifest.json 在 源码视图文件中 "mp-weixin" 里面添加如下代码
"manifest.json"
"mp-weixin": {
"appid": "1234567890",
"optimization": { // 配置完成之后,分包的依赖只会打到分包里面去
"subPackages": true
}
}