1. 什么是分包?
分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。
2.分包的好处
可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作
3.分包后的项目构成
分包后小程序由一个主包与多个分包组成
主包:一般只包含项目的启动页面或 TabBar 页面、以及所有分包都需要用到的一些公共资源
分包:只包含和当前分包有关的页面和私有资源
app.json配置,保存之后会生成分包文件
{
"pages": [
"pages/home/home",
"pages/message/message",
"pages/contact/contact",
"pages/info/info"
],
"subPackages": [{
"root": "animal",
"pages": [
"pages/cat/cat",
"pages/dog/dog"
]
},{
"root": "phone",
"pages": [
"pages/huawei/huawei",
"pages/oneplus/oneplus"
]
},
...
}
4.独立分包
与普通分包的区别是不需要依赖主包独立运行的分包:不下载主包的情况下独立运行
将"independent": true
设置为true为独立分包
5.资源引用原则:
独立分包和普通分包以及主包之间是相互隔绝
的,不能相互引用彼此资源例如:
- 主包无法引用独立分包内的私有资源
- 独立分包之间不能相互引用私有资源
- 独立分包和普通分包之间不能相互引用私有资源
- 独立分包中不能引用主包内的公共资源
6.分包预下载
:在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面是的启动速度
app.json配置
"preloadRule": {//分包预下载的规则
"pages/contact/contact":{//触发分包预下载的页面路径
"packages": [
"animal"//通过root或别名name指定下载哪些分包
],
"network": "wifi"//表示在指定的网络模式下下载:all不限网络
}
},
"subPackages": [{
"root": "animal",
"pages": [
"pages/cat/cat",
"pages/dog/dog"
]
}