uniapp分包

600 阅读1分钟

为什么要分包

在小程序启动时,默认会下载主包并启动主包内页面, 如果主包过大,会导致整个项目只有在主包全部加载完毕之后才会展示在用户界面

分包的限制

小程序官网解释如下:

  • 整个小程序所有分包大小不超过 20M
  • 单个分包/主包大小不能超过 2M

分包的好处

对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。

使用分包

  1. 在manifest.json中 mp-weixin 对象配置
"optimization": {  "subPackages": true  } // 开启分包优化
  1. 新建一个同级目录存放分包后的页面 例如: subPages
├── pages // 主包
├── subPages // 分包
├    └── order
├           ├── order.vue
  1. 配置pages.json
"subPackages": [  
    {  
        "root": "subPages",    // 分包根目录
        "name": "subPages",   // 分包别名,分包预下载时使用
        "pages": [           // 分包页面路径,相对与分包根目录
            { "path": "order/order" }
        ]  
    }
]

分包预下载

  1. 同样是配置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分包的记录文,此文分包只对应小程序,如果操作无效,可以尝试重新编译小程序。