# 原因
打包时把所有的包都集中在一起 如果文件过大会造成第一次进入加载时间过长
避免这种情况的发生可以使用分包的形式 进行分包后的小程序分为:主分包分包
注意的是tabBar页面 必须放在主分包里面
分包有两种独立分包和普通分包且不能嵌套只能是并列关系
独立分包不需要依赖主分包即可自己运行 只能访问自己的资源普通分包需要让主分包运行才可以运行 可以访问主包的公共资源但是分包的私有资源之间是不可以互相访问的分包预下载:进入小程序某个页面时 下载用户下一个需要的分包 从而提升进入后续分包的速度 一个页面的预下载不能超过 2MB

# 原生修改配置
在根目录的
app.json配置 subPackages
# 普通分包
{
"pages": [],
"tabbar": {},
"subPackages": [
{
"root": "pageA",
"name": "PAGEA",
"pages": [
"pages/catA/catA",
"..."
]
},
{
"root": "pageB",
"name": "PAGEB",
"pages": [
"pages/catB/catB",
"..."
]
}
],
}
# 独立分包
变为独立分包只需要在对应的分包里添加一个 关键字:
independent设置为true即可
{
"pages": [],
"tabbar": {},
"subPackages": [
{
"root": "pageA",
"name": "PAGEA",
"pages": [
"pages/catA/catA",
"..."
],
"independent": true
}
],
}
# 分包预下载

在顶层添加 preloadRule 字段
network那一种网络进行预下载 all 所有 wifi 要对应网络才下载
packages分包名字 或者 分包的路径
官方
{
"pages":[],
"window":{},
"subPackages": [
{
"root": "pageA",
"name": "PAGEA",
"pages": [
"pages/catA/catA"
]
}
],
"preloadRule": {
"pages/contact/contact": {
"network": "all",
"packages": ["pageA"]
}
},
"tabBar": {
"list": [{
"pagePath": "pages/home/home",
"text": "home"
},{
"pagePath": "pages/message/message",
"text": "message"
}]
}
}