在小程序開發的過程中,小程序的體積會隨着版本的迭代變的越來越大,這時候我們就希望能夠將小程序分成多個包從服務器下載,這樣既可以加快首屏的渲染也便於后續按需加載的實現。小程序在微信客戶端 6.6.0,基礎庫 1.7.3 及以上版本開始支持分包功能。
在構建小程序分包項目時,構建會輸出一個或多個分包。每個使用分包的小程序必定含有一個主包。所謂的主包,即放置默認啟動頁面/TabBar 頁面,以及一些所有分包都需用到公共資源/JS 腳本;而分包則是根據開發者的配置進行划分。
在小程序啟動時,默認會下載主包並啟動主包內頁面,當用戶進入分包內某個頁面時,客戶端會把對應分包下載下來,下載完成后再進行展示。
配置文件:
{ "pages": ["pages/index", "pages/shopcart"], "subpackages": [ { "root": "packageA", "pages": ["pages/mine", "pages/order"] }, { "root": "packageB", "name": "pack2", "pages": ["pages/detail", "pages/pay"] } ] }
項目目錄:
├── app.js
├── app.json
├── app.wxss
├── packageA
│ └── pages
│ ├── mine
│ └── order
├── packageB
│ └── pages
│ ├── pay
│ └── detail
├── pages
│ ├── index
│ └── shopcart
└── utils
打包原則
1 聲明 subpackages 后,將按 subpackages 配置路徑進行打包,subpackages 配置路徑外的目錄將被打包到 app(主包) 中;
2 app(主包)也可以有自己的 pages(即最外層的 pages 字段);
3 tabBar 頁面必須在 app(主包)內;
引用原則
packageA 無法使用packageB的 JS 文件,但可以 使用 app(主包)、自己 package 內的 JS 文件;