Chinaunix首页 | 论坛 | 博客
  • 博客访问: 930005
  • 博文数量: 210
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2070
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-19 21:54
文章分类

全部博文(210)

文章存档

2020年(2)

2019年(18)

2018年(27)

2017年(5)

2016年(53)

2015年(88)

2014年(17)

分类: 其他平台

2018-09-05 13:53:43

某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

在构建小程序分包项目时,构建会输出一个或多个功能的分包,其中每个分包小程序必定含有一个主包,所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本,而分包则是根据开发者的配置进行划分。

在小程序启动时,默认会下载主包并启动主包内页面,如果用户需要打开分包内某个页面,客户端会把对应分包下载下来,下载完成后再进行展示。

目前小程序分包大小有以下限制:

  • 整个小程序所有分包大小不超过 8M
  • 单个分包/主包大小不能超过 2M

对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。
打包原则

  • 声明 subPackages 后,将按 subPackages 配置路径进行打包,subPackages 配置路径外的目录将被打包到 app(主包) 中
  • app(主包)也可以有自己的 pages(即最外层的 pages 字段)
  • subPackage 的根目录不能是另外一个 subPackage 内的子目录
  • 首页的 TAB 页面必须在 app(主包)内
引用原则
  • packageA 无法 require packageB JS 文件,但可以 require app、自己 package 内的 JS 文件
  • packageA 无法 import packageB 的 template,但可以 require app、自己 package 内的 template
  • packageA 无法使用 packageB 的资源,但可以使用 app、自己 package 内的资源

tabbar页面单独放一个包,结构如下




图片中:pages 为主包,部分bufen_pack为副包
app.json 代码:

点击(此处)折叠或打开

  1. {
  2.   "pages":
  3.     "pages/index/index",
  4.     "pages/fenlei/fenlei",
  5.     "pages/index/xcxdl",
  6.     "pages/index/shoplist",
  7.     "pages/index/post",
  8.     "pages/index/type_list",
  9.     "pages/category_page4/category_page4",
  10.     "pages/index/sign_in",
  11.     "pages/recommend/recommend",
  12.     "pages/trends/trends",
  13.     "pages/trends/comment",
  14.     "pages/trends/thumb_up",
  15.     "pages/trends/personal_letter",
  16.     "pages/trends/replylist",
  17.     "pages/my/set_authorize",
  18.     "pages/my/manager_list",
  19.     "pages/my/my",
  20.     "pages/my/my_index",
  21.     "pages/my/m_publish",
  22.     "pages/my/psl_letter",
  23.     "pages/my/follow_fans_list",
  24.     "pages/my/sc",
  25.     "pages/my/psl_detail",
  26.     "pages/my/bind_phone",
  27.     "pages/my/edit_phone",
  28.     "pages/index/search",
  29.     "pages/my/edit_nick_name",
  30.     "pages/auth/auth",
  31.     "pages/yhsh/yhsh",
  32.     "pages/confirm_order/confirm_order",
  33.     "pages/shopping/index",
  34.     "pages/product_detail/product_detail",
  35.     "pages/goodlist/goodlist",
  36.     "pages/shopmall/index"
  37.   ],
  38.   "window": {
  39.     "backgroundTextStyle": "light",
  40.     "navigationBarBackgroundColor": "#5bade4",
  41.     "navigationBarTitleText": "首页",
  42.     "navigationBarTextStyle": "#fff"
  43.   },
  44.   "tabBar": {
  45.     "color": "#8a8a8a",
  46.     "selectedColor": "#EE6E5E",
  47.     "list": [
  48.       {
  49.         "pagePath": "pages/index/index",
  50.         "text": "首页",
  51.         "iconPath": "icons/default1.png",
  52.         "selectedIconPath": "icons/select1.png"
  53.       },
  54.       {
  55.         "pagePath": "pages/fenlei/fenlei",
  56.         "text": "分类",
  57.         "iconPath": "icons/default2.png",
  58.         "selectedIconPath": "icons/select2.png"
  59.       },
  60.       {
  61.         "pagePath": "pages/index/type_list",
  62.         "text": "发布信息",
  63.         "iconPath": "icons/icon5.png",
  64.         "selectedIconPath": "icons/icon5.png"
  65.       },
  66.       {
  67.         "pagePath": "pages/category_page4/category_page4",
  68.         "text": "商城",
  69.         "iconPath": "icons/default3.png",
  70.         "selectedIconPath": "icons/select3.png"
  71.       },
  72.       {
  73.         "pagePath": "pages/my/my",
  74.         "text": "我的",
  75.         "iconPath": "icons/default4.png",
  76.         "selectedIconPath": "icons/select4.png"
  77.       }
  78.     ]
  79.   },
  80.   "subPackages":
  81.     {
  82.       "root": "bufen_pack", //加载副包的路径
  83.       "pages": [
  84.         "address_edit/address_edit",
  85.         "address/address",
  86.         "cart/cart",
  87.         "home/home",
  88.         "nearby/nearby",
  89.         "nearby/board_list",
  90.         "nearby/rz",
  91.         "nearby/s_detail",
  92.         "nearby/s_d_detail",
  93.         "nearby/contact"
  94.       ]
  95.     }
  96.   ]
  97. }



            
阅读(3191) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~