pages.json 用于uni-app的全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。
由于各个小程序平台的限制和优化启动速度。我们可能需要用到分包机制——例如,在微信小程序中生成的单个包大于2M时,无法上传。
所以,我们需要使用subPackges和preLoadRule配置进行分包。
subPackages、preloadRule
pages主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据pages.json的配置进行划分。
分包的目录机构和配置
在uniapp结构里原本已经有一个pages的包(文件夹)了,我们在pages同级里新建多个文件夹。
"pages": [
{
"path": "pages/home/home"
},
{
"path": "pages/user/user"
},
],
"subPackages": [
{
"root": "pagesA",
"pages": [
{
"path": "homeDetail/index",
"style": {
"navigationBarTitleText": "详情"
}
}
]
},
{
"root": "pagesB",
"pages": [
{
"path": "userDetail/index",
"style": {
"navigationBarTitleText": "详情"
}
}
....
]
},
...
],
preloadRule
在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,会把对应分包自动下载下来,下载完成后再进行展示。提升进入后续分包页面时的启动速度。
subPackages同级配置preloadRule
"preloadRule": {
"pagesA/homeDetail/index": {
"network": "all",
"packages": [
"__APP__"
]
},
"pagesB/userDetail/index": {
"network": "all",
"packages": [
"__APP__"
]
},
...
},
app的分包,同样支持preloadRule,但网络规则无效。
App默认为整包。从uni-app 2.7.12+ 开始,也兼容了小程序的分包配置。其目的不用于下载提速,而用于首页是vue时的启动提速。App下开启分包,除在pages.json中配置分包规则外,还需要在manifest中设置在app端开启分包设置,详见.
这时主包就不大了
参考网址
https://uniapp.dcloud.io/collocation/pages?id=preloadrule