微信小程序-分包加载

分包加载

主包存放小程序的默认启动页面和tabbar页面,还有一些所有分包的共同依赖文件

分包按照业务功能划分,当小程序加载到某一个分包时,该分包在下载加载,实现懒加载

小程序中规定,主包大小不能超过2M,分包大小总计不能超过20M


配置方式

小程序如果想要配置分包加载,需要在app.json中,通过subPackages或者subpackages定义分包结构

每个分包结构包含三个常用字段:

  • root:分包的根目录,该目录下的所有文件都会背打包成一个独立的包
  • name:分包的别名,用于在代码中引用该分包
  • pages:指定当前分包中包含哪些页面

在跳转到分包页面时,同样是通过navigator去跳转,但路径签应加上root目录


独立分包

开发者可以将功能相对独立的页面配置到独立分包中,因为独立分包不依赖主包可以运行,可以很大程度上提升分包页面的启动速度

给subPackages定义的分包结构中添加independent字段为true,即可声明对应分包为独立分包

主包中的app.wxss对独立分包无效,独立分包不能依赖主包和其他分包的资源


分包预下载

分包预下载指的是访问小程序的某个页面时,预先下载其他分包的代码和资源

在app.json中通过preloadRule配置项来配置访问哪个页面需要进行预下载,通过其中的network字段可以配置wifi预下载和所有网络预下载,其中的package字段配置分包的别名,用来配置预下载哪些分包

1
2
3
4
5
6
"preloadRule": { 
"page/index/index":{ // 当访问主页面时进行预下载
"network": "all", // 在所有网络下都预下载
"packages": ["goodMoudule"] // 预下载goodMoudule分包
}
}

同时,我们也可以配置访问独立分包时预下载主包

1
2
3
4
"module/goodModule/pages/good/good":{ // 分包root
"network": "all",
"packages": ["__APP__"] // 主包的固定写法
}


微信小程序-分包加载
http://blog.170827.xyz/2025/07/09/微信小程序-分包加载/
作者
XIAOBAI
发布于
2025年7月9日
许可协议