摘自微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages.html

起初小程序上线时,微信限制了代码包不能超过1MB,后来功能变大变成了2M了,限制大小是出于对小程序启动速度的考虑,希望用户在使用任何一款小程序时,都能获得一种“秒开”体验。但是,2MB也限制了小程序功能的扩展,小程序业务的发展可能需要更大的体积。为了解决这个问题,微信推出了—分包加载。

小程序分包加载

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

目录结构:

├── app.js
├── app.json
├── app.wxss
├── packageA
│ └── my
├── packageB
│ └── list
├── pages
│ ├── index
│ └── logs
└── utils

开发者通过在 app.json subpackages或subPackages 字段声明项目分包结构:

{"pages":["pages/index","pages/logs"],"subpackages": [{"root": "packageA","pages": ["my"]}, {"root": "packageB","name": "pack2","pages": ["list"]}]
}

分包预下载

开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。
分包预下载目前只支持通过配置方式使用,暂不支持通过调用API完成。

配置方法

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

{"pages": ["pages/index"],"subpackages": [{"root": "sub1","name": "hello","pages": ["index"],},{"root": "sub2","pages": ["index"],}],"preloadRule": {"sub1/index": {"packages": ["__APP__"]},"sub2/index": {"packages": ["hello"]}}
}

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

字段 类型 必填 默认值 说明
packages StringArray 进入页面后预下载分包的 root 或 name。__APP_表示主包。
network String 否- wifi 在指定网络下预下载,可选值为:all: 不限网络,wifi: 仅wifi下预下载

打包原则

声明 subpackages 后,将按 subpackages 配置路径进行打包,subpackages 配置路径外的目录将被打包到 app(主包) 中
tabBar 页面必须在 app(主包)内

分包加载的低版本兼容

由微信后台编译来处理旧版本客户端的兼容,后台会编译两份代码包,一份是分包后代码,另外一份是整包的兼容代码。 新客户端用分包,老客户端还是用的整包,完整包会把各个 subpackage 里面的路径放到 pages 中。

微信小程序:uni-app 小程序打包超过2M限制的方法—分包加载相关推荐

  1. uniapp 小程序超过2M的解决方法——分包

    小程序限制: 整个小程序所有分包大小不超过 8M  单个分包/主包大小不能超过 2M 如果小程序每个包超出了2M,不能预览和上传,所以需要分包 不难!不难!一点也不难!操作起来很简单 1.在根目录(p ...

  2. 微信小游戏开发(9)- 分包加载

    随着小游戏的玩法越来越丰富,开发者对于扩大包大小的需求越来越强烈,所以微信推出了小游戏分包加载这一个功能. 所谓的分包加载,即把游戏内容按照一定的规则拆分成几个包,在首次启动时先下载必要的包,这个必要 ...

  3. uniapp 微信小程序打包 vendor.js过大 导致打包超过2M

    1.分包加载,小程序限制一个包2M,可以分9个子包,整包共计不能超出20M,这一步很简单,如果看文档感觉枯燥的可以参考uview框架的demo,因为这个demo就使用了小程序的分包机制,demo链接( ...

  4. uni-app小程序本地打包超过2M不能预览问题;小程序打包过大不能预览和真机调试;uni-app分包;

    一.问题:我们在小程序工具中开发时候,需要本地打包,但是当本地的打包文件大于2M时候,预览的二维码就会有问题,导致真机扫码打不开或者有遗漏. 二.此时就需要开启分包 1.微信小程序每个分包的大小是2M ...

  5. 微信小程序开发(三):分包加载

    微信小程序分包加载 小程序开发完成后,开发者需要将代码包上传到小程序管理后台上线,这时候我们会发现,小程序后台对开发者上传的代码包有严格的大小要求:本地代码超过2M就会限制上传. 目前小程序分包大小有 ...

  6. 微信小程序,Eror代码包大小为12497kb,上限为 2048 kb,请删除文件后重试?微信小程序分包加载

    微信小程序如何解决预览超过2M的问题?微信小程序分包加载 在微信小程序开发过程中有个问题让人很头疼,就是预览的项目不能超过2M,我们的项目通常都会超过这个大小限制.那到底怎么解决呢?其实官方给出了解决 ...

  7. 微信小程序之分包加载,解决代码超过2M的方法

    2017.01.09 小程序上线时,微信限制了代码包不能超过1MB 大小,(现在是2M了)限制大小是出于对小程序启动速度的考虑,希望用户在使用任何一款小程序时,都能获得一种"秒开" ...

  8. 微信小程序分包加载,分包加载的优势

    微信小程序分包加载: 有时候我们的小程序太大,首次打开小程序的时候会比较慢,可以进行分包处理,按照功能的划分,拆分成几个分包,让用户在操作小程序的时候按需下载资源(用户在进入某些页面的时候才去下载相应 ...

  9. 微信小程序 自动解决分包大小问题_微信小程序分包加载设置

    设置分包加载 微信小程序分包限制为: 主包或者单个分包最大为2M 整体小程序所有包最大为8M 为什么需要设置分包? 小程序项目中,有多种角色(公共页面很少),设置分包加载方便管理 整个小程序压缩后代码 ...

最新文章

  1. linux mysql安装 读写分离_linux下安装mysql-proxy 配置读写分离
  2. ClickHouse设置用户名密码
  3. 命令行中只用scala来运行一个spark应用
  4. 转:SparkConf 配置的用法
  5. 深入理解Python中的元类(metaclass)
  6. @async 没有异步_玩转javascript异步编程
  7. 原版英文书籍《Linux命令行》阅读记录4 | 操作文件和目录
  8. 光影变幻:自动化所基于最优传输理论的影视换脸技术
  9. 反射学习系列2-特性(Attribute)
  10. 花钱你都学不到的“饭局”规矩~
  11. python合并文件夹下的文件_Python实现合并同一个文件夹下所有txt文件的方法示例...
  12. c语言参数列表定义一个三维数组,C语言多维数组
  13. 【Win10技巧】如何设置win10资源管理器打开为“这台电脑”?
  14. BootStrap_04之jQuery插件(导航、轮播)、以及Less
  15. linux php gmagick,Linux下编译安装GraphicsMagick及PHP扩展gmagick
  16. centos6.4用cloudera manager安装hadoop2.0.0-cdh4.3.0集群(二)
  17. 企业上云计算最大的障碍是什么?
  18. java更改svg图片颜色_使用Batik绘制SVG图并保存为png图像格式
  19. 手把手教会你 | 多用户-服务器聊天室应用软件开发
  20. 图文详解超五类网线的接法

热门文章

  1. Zemax模拟物体通过透镜成像
  2. 应用案例| FDISYSTEMS公司DETA10系列产品为3000台运动体提供导航
  3. Greenplum性能调试记录
  4. 充气娃娃也好玩——在EXSI上安装Panabit与PanaLog(一)系统的选型与前期准备工作
  5. MySQL:用户表结构设计
  6. 短信系统WEB网页短信平台设计-移讯云短信系统
  7. 东财21秋《利息理论X》单元作业1【标准答案】
  8. wps怎么投递简历发到boss直聘_boss直聘怎么投简历
  9. 通过淘宝的ip地址库获取ip地址通用类的实现(C#版)
  10. Photoshop实例教程:打造Apple光芒…