小程序的容量大小是2MB一但超過就會提示不能上傳或真機,這時候通過分包可以解決,分包一般放的是tabBar主頁下面的跳轉頁面
分包構視圖
├── app.js
├── app.json
├── app.wxss
├── packageA
│ └── pages
│ ├── cat
│ └── dog
├── packageB
│ └── pages
│ ├── apple
│ └── banana
├── pages
│ ├── index
│ └── logs
└── utils
常規分包
pages是主包優先加載,packageA,packageB是分包需要使用時才會加載
如圖所示在pages同層級新建文件夾
在分包下分別再新建一個文件夾,叫pages,里面放要分開的頁面文件夾
在app.json里進行配置
{ "pages":[ //主包 "pages/index", "pages/logs" ], "subpackages": [ //分包 { "root": "songPackage", //分包根的目錄 "pages": [ "pages/recommendSong/index", "pages/songDetail/index" //分包頁面路徑,相對與分包根目錄 ] }, { "root": "otherPackage", //分包根的目錄 "pages": [ "pages/other/index" //分包頁面路徑,相對與分包根目錄 ] } ] }
注,分包后引入其它東西的路徑
打開詳情,后可以查看分包情況
總結 : a) 加載小程序的時候先加載主包,當需要訪問分包的頁面時候才加載分包內容
b) 分包的頁面可以訪問主包的文件,數據,圖片等資源
c) 主包: i. 主包來源: 除了分包以外的內容都會被打包到主包中
ii. 通常放置啟動頁/tabBar 頁面
獨立分包
如圖所示只需要在json頁面下添加一個屬性即可,獨立分包一般用於,使用臨時增加的廣告頁面,活動頁面,注:獨立分包不可不能依賴主包或者其他包的內容
總結:a) 獨立分包可單獨訪問分包的內容,不需要下載主包
b) 獨立分包不能依賴主包或者其他包的內容
分包預下載
分包預下載屬性必須要和常規分包的屬性同一層級如圖
在preloadRule里使用要預加載的頁面
可以在里面添加一些,其它屬性
network:all
(不限網絡) / wifi (
僅wifi下預下載)
"preloadRule": {
"pages/index/index": {
"network": "all", "packages": ["songPackage"] },
}
packages里也可加載主包,用於獨立分包
"indep/index": { "packages": ["__APP__"] }
總結:
a) 在加載當前包的時候可以設置預下載其他的包
b) 縮短用戶等待時間,提高用戶體驗