# 使用分包
# 配置方法
假設(shè)支持分包的小程序目錄結(jié)構(gòu)如下:
├── app.js
├── app.json
├── app.wxss
├── packageA
│?? └── pages
│?? ├── cat
│?? └── dog
├── packageB
│?? └── pages
│?? ├── apple
│?? └── banana
├── pages
│?? ├── index
│?? └── logs
└── utils
開發(fā)者通過在 app.json subPackages 字段聲明項(xiàng)目分包結(jié)構(gòu):
寫成
subpackages也支持。
{
"pages":[
"pages/index",
"pages/logs"
],
"subPackages": [
{
"root": "packageA",
"pages": [
"pages/cat",
"pages/dog"
],
"entry": "index.js"
}, {
"root": "packageB",
"name": "pack2",
"pages": [
"pages/apple",
"pages/banana"
]
}
]
}
subPackages 中,每個(gè)分包的配置有以下幾項(xiàng):
| 字段 | 類型 | 說明 |
|---|---|---|
| root | String | 分包根目錄 |
| name | String | 分包別名,分包預(yù)下載時(shí)可以使用 |
| pages | StringArray | 分包頁(yè)面路徑,相對(duì)于分包根目錄 |
| independent | Boolean | 分包是否是獨(dú)立分包 |
| entry | String | 分包入口文件 |
# 打包原則
- 聲明
subPackages后,將按subPackages配置路徑進(jìn)行打包,subPackages配置路徑外的目錄將被打包到主包中 - 主包也可以有自己的 pages,即最外層的 pages 字段。
subPackages的根目錄不能是另外一個(gè)subPackages內(nèi)的子目錄tabBar頁(yè)面必須在主包內(nèi)
# 引用原則
packageA無法 requirepackageBJS 文件,但可以 require 主包、packageA內(nèi)的 JS 文件;使用 分包異步化 時(shí)不受此條限制packageA無法 importpackageB的 template,但可以 require 主包、packageA內(nèi)的 templatepackageA無法使用packageB的資源,但可以使用主包、packageA內(nèi)的資源
# 分包入口文件
每個(gè)分包的配置中,entry 字段可以指定該分包中的任意一個(gè) JS 文件作為入口文件,該文件會(huì)在分包注入時(shí)首先被執(zhí)行。
指定的 JS 文件應(yīng)該填寫相對(duì)于分包根目錄的路徑,例如需要指定 /path/to/subPackage/src/index.js 作為分包 /path/to/subPackage 的入口文件時(shí),應(yīng)填寫 src/index.js。
調(diào)試這個(gè)功能需要 1.06.2406242 或以上版本的微信開發(fā)者工具,正式環(huán)境沒有版本需求。