subPackages

分包加载配置

注意:此配置为小程序的分包加载机制。在5+App里始终为整包。

  • 微信、百度小程序每个分包的大小是2M,总体积一共不能超过8M。
  • 支付宝小程序每个分包的大小是2M,总体积一共不能超过4M。subPackages 节点接收一个数组,数组每一项都是应用的子包,其属性值如下:
属性类型是否必填描述
rootString子包的根目录
pagesArray子包由哪些页面组成,参数同 pages

注意: subPackages 里的pages的路径是 root 下的相对路径,不是全路径。

使用方法:

假设支持分包的 uni-app 目录结构如下:

  1. ┌─pages
  2. ├─index
  3. └─index.vue
  4. └─login
  5. └─login.vue
  6. ├─pagesA
  7. └─list
  8. └─list.vue
  9. ├─pagesB
  10. └─detail
  11. └─detail.vue
  12. ├─static
  13. ├─main.js
  14. ├─App.vue
  15. ├─manifest.json
  16. └─pages.json

则需要在 pages.json 中填写

  1. {
  2. "pages": [{
  3. "path": "pages/index/index",
  4. "style": { ...}
  5. }, {
  6. "path": "pages/login/login",
  7. "style": { ...}
  8. }],
  9. "subPackages": [{
  10. "root": "pagesA",
  11. "pages": [{
  12. "path": "list/list",
  13. "style": { ...}
  14. }]
  15. }, {
  16. "root": "pagesB",
  17. "pages": [{
  18. "path": "detail/detail",
  19. "style": { ...}
  20. }]
  21. }],
  22. "preloadRule": {
  23. "pagesA/list/list": {
  24. "network": "all",
  25. "packages": ["__APP__"]
  26. },
  27. "pagesB/detail/detail": {
  28. "network": "all",
  29. "packages": ["pagesA"]
  30. }
  31. }
  32. }