使用分包

2020-07-29 15:31 更新

使用分包

配置方法

假設(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"
      ]
    }, {
      "root": "packageB",
      "name": "pack2",
      "pages": [
        "pages/apple",
        "pages/banana"
      ]
    }
  ]
}

subpackages 中,每個(gè)分包的配置有以下幾項(xiàng):

字段類型說明
rootString分包根目錄
nameString分包別名,分包預(yù)下載時(shí)可以使用
pagesStringArray分包頁面路徑,相對與分包根目錄
independentBoolean分包是否是獨(dú)立分包

打包原則

  • 聲明 subpackages 后,將按 subpackages 配置路徑進(jìn)行打包,subpackages 配置路徑外的目錄將被打包到 app(主包) 中
  • app(主包)也可以有自己的 pages(即最外層的 pages 字段)
  • subpackage 的根目錄不能是另外一個(gè) subpackage 內(nèi)的子目錄
  • tabBar 頁面必須在 app(主包)內(nèi)

引用原則

  • packageA 無法 require packageB JS 文件,但可以 require app、自己 package 內(nèi)的 JS 文件
  • packageA 無法 import packageB 的 template,但可以 require app、自己 package 內(nèi)的 template
  • packageA 無法使用 packageB 的資源,但可以使用 app、自己 package 內(nèi)的資源

低版本兼容

由微信后臺(tái)編譯來處理舊版本客戶端的兼容,后臺(tái)會(huì)編譯兩份代碼包,一份是分包后代碼,另外一份是整包的兼容代碼。 新客戶端用分包,老客戶端還是用的整包,完整包會(huì)把各個(gè) subpackage 里面的路徑放到 pages 中。

示例項(xiàng)目

下載 小程序示例(分包加載版)源碼


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)