# 分包預(yù)下載
基礎(chǔ)庫(kù) 2.3.0 開始支持,低版本需做兼容處理。 開發(fā)者工具請(qǐng)使用 1.02.1808300 及以上版本,可點(diǎn)此下載。
開發(fā)者可以通過(guò)配置,在進(jìn)入小程序某個(gè)頁(yè)面時(shí),由框架自動(dòng)預(yù)下載可能需要的分包,提升進(jìn)入后續(xù)分包頁(yè)面時(shí)的啟動(dòng)速度。對(duì)于獨(dú)立分包,也可以預(yù)下載主包。
分包預(yù)下載目前只支持通過(guò)配置方式使用,暫不支持通過(guò)調(diào)用API完成。
vConsole 里有
preloadSubpackages開頭的日志信息,可以用來(lái)驗(yàn)證預(yù)下載的情況。
# 配置方法
預(yù)下載分包行為在進(jìn)入某個(gè)頁(yè)面時(shí)觸發(fā),通過(guò)在 app.json 增加 preloadRule 配置來(lái)控制。
{
"pages": ["pages/index"],
"subpackages": [
{
"root": "important",
"pages": ["index"],
},
{
"root": "sub1",
"pages": ["index"],
},
{
"name": "hello",
"root": "path/to",
"pages": ["index"]
},
{
"root": "sub3",
"pages": ["index"]
},
{
"root": "indep",
"pages": ["index"],
"independent": true
}
],
"preloadRule": {
"pages/index": {
"network": "all",
"packages": ["important"]
},
"sub1/index": {
"packages": ["hello", "sub3"]
},
"sub3/index": {
"packages": ["path/to"]
},
"indep/index": {
"packages": ["__APP__"]
}
}
}
preloadRule 中,key 是頁(yè)面路徑,value 是進(jìn)入此頁(yè)面的預(yù)下載配置,每個(gè)配置有以下幾項(xiàng):
| 字段 | 類型 | 必填 | 默認(rèn)值 | 說(shuō)明 |
|---|---|---|---|---|
| packages | StringArray | 是 | 無(wú) | 進(jìn)入頁(yè)面后預(yù)下載分包的 root 或 name。__APP__ 表示主包。 |
| network | String | 否 | wifi | 在指定網(wǎng)絡(luò)下預(yù)下載,可選值為:all: 不限網(wǎng)絡(luò) wifi: 僅wifi下預(yù)下載 |
# 限制
同一個(gè)分包中的頁(yè)面享有共同的預(yù)下載大小限額 2M,限額會(huì)在工具中打包時(shí)校驗(yàn)。
如,頁(yè)面 A 和 B 都在同一個(gè)分包中,A 中預(yù)下載總大小 0.5M 的分包,B中最多只能預(yù)下載總大小 1.5M 的分包。