分包预下载

基础库 2.3.0 开始支持,低版本需做兼容处理。开发者工具请使用 1.02.1808300 及以上版本,可点此下载

开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。

分包预下载目前只支持通过配置方式使用,暂不支持通过调用API完成。

vConsole 里有preloadSubpackages开头的日志信息,可以用来验证预下载的情况。

配置方法

预下载分包行为在进入某个页面时触发,通过在 app.json 增加 preloadRule 配置来控制。

  1. {
  2. "pages": ["pages/index"],
  3. "subpackages": [
  4. {
  5. "root": "important",
  6. "pages": ["index"],
  7. },
  8. {
  9. "root": "sub1",
  10. "pages": ["index"],
  11. },
  12. {
  13. "name": "hello",
  14. "root": "path/to",
  15. "pages": ["index"]
  16. },
  17. {
  18. "root": "sub3",
  19. "pages": ["index"]
  20. },
  21. {
  22. "root": "indep",
  23. "pages": ["index"],
  24. "independent": true
  25. }
  26. ],
  27. "preloadRule": {
  28. "pages/index": {
  29. "network": "all",
  30. "packages": ["important"]
  31. },
  32. "sub1/index": {
  33. "packages": ["hello", "sub3"]
  34. },
  35. "sub3/index": {
  36. "packages": ["path/to"]
  37. },
  38. "indep/index": {
  39. "packages": ["__APP__"]
  40. }
  41. }
  42. }

preloadRule 中,key 是页面路径,value 是进入此页面的预下载配置,每个配置有以下几项:

字段类型必填默认值说明
packagesStringArray进入页面后预下载分包的 rootnameAPP 表示主包。
networkStringwifi在指定网络下预下载,可选值为: all: 不限网络 wifi: 仅wifi下预下载

限制

同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。

如,页面 A 和 B 都在同一个分包中,A 中预下载总大小 0.5M 的分包,B中最多只能预下载总大小 1.5M 的分包。