小程序包体积压缩优化,下降500k起步

2023-11-04

由于公司小程序包体积过大,已经达到1.9m了,微信定义小程序单个代码包(主包/分包)上限为2m,所以小程序该减肥了

如果你按我的步骤都做了,体积没有减少,ok,来打我
在这里插入图片描述

第一步:最直接的方式 — 图片优化

  • 我们在小程序中尽量不要存放过多的图片,尽量把图片放到阿里云CDN,放之前一定要压缩
  • 本地的图片一定要压缩,我这里就发现之前同事有一些图片没有进行压缩,导致部分空间占用

推荐使用图片压缩工具:https://tinypng.com/ (支持批量压缩,批量下载)
看下面这张图,第一次直接压缩84%,压缩了100多k,第二次压缩的时候就只能压缩2%
因为已经到达最小体积了,再压缩就会失真.所以压缩一次就够了
在这里插入图片描述

第二步:优化体积主要方法 — 分包

这一步骤相信大家都很熟悉,所以我就详细讲一下:微信分包文档

分包分为常规分包独立分包 两种分包稍微有点区别

  • 常规分包:访问分包页面时需要下载主包
  • 独立分包:访问不需要下载主包,使用independent开启,官网介绍

分包加载具有以下优势:

  • 承载更多功能
  • 降低代码包下载耗时:使用分包后可以显著减少启动时需要下载的代码包大小
  • 降低小程序代码注入耗时
  • 降低页面渲染耗时
  • 降低内存占用:分包能够实现页面、组件和逻辑较粗粒度的按需加载,从而降低内存的占用。

在小程序中那些内容可以分包

  • 活动页、广告页
  • 用户页面访问量占比相对较少,比如一些页面只有一批指定的人才可以访问
  • 通常功能不是很复杂且相对独立的内容也可以进行分包

具体分包内容可根据实际开发需求和逻辑进行衡量是否分包
使用了分包最好在app.json中通过 preloadRule 开启分包预下载,提高用户体验 官网

第三步:删除无依赖代码

在我我们小程序中可能存在一些并没用使用的一些页面或js文件
我们可以自己衡量项目中是否还需要,这些文件是不是真的是无依赖文件、废物文件
在我们小程序开发这工具中可以清楚地看到那些文件为无依赖文件
在这里插入图片描述

第四步:小程序开发工具开启代码压缩

在我们小程序开发工具中勾选上传代码时自动压缩功能,棒棒哒。
在这里插入图片描述
之前通过gulp压缩的代码的方式,和通过小程序开发工具上传时自动压缩,预览体积大小差不多
gulp压缩的稍微比小程序压缩的体积要小10k左右,没太大的变化,所以就就直接小程序压缩就好了哟
在这里插入图片描述

第五步:优化代码逻辑、封装公用组件方法

在我们开发项目的时候尽量多考虑一下,多封装,减少无用代码,js和css都尽量进行代码复用,重复方法,重复样式进行抽离

  • 减少不必要的代码,避免出现重复的代码(例如小程序自动生成的一些生命周期方法,页面不需要就可以删掉)
  • 页面避免不必要的组件嵌套,能用一个 view 做到的,就不要再多套一层 view
  • 尽量的复用页面,判断逻辑写在页面中区分。
  • 封装公共方法,公共页面(比如登录授权逻辑、用户是否开启用户定位信息、消息订阅方法等)

第六步:懒加载方式引入第三方组件

我们小程序一般会引入第三方组件样式,比如 vantThorColorUI
我们按照官网的步骤进行安装完成的时候会发现有两个文件 node_modulesminiprogram_npm 两个文件,前者不会参加编译上传
miniprogram_npm是我们通过npm构建后的包,是小程序引用的包,找到下面的第三方组件,把一些项目中没用到的组件删除
在这里插入图片描述

ok到此结束

把上面的步骤都做过了,相信你的包体积已经下降了很多吧!

如果有没写道的,欢迎补充,如果哪里写错了,我接受批评。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小程序包体积压缩优化,下降500k起步 的相关文章

  • uboot 中内存测试,内存检测方法

    DDR内存子系统常见硬件错误及Uboot中检测流程 在 U Boot中 Denx U Boot的开发商 针对常见的DDR内存故障进行了严格的检测处理 下图描述了该检测处理过程的三个步骤 检测数据线 地址线和DDR物理存储部件 主要涉及这三个
  • 给大家介绍几个好的软件包下载网站

    RPM SEARCH http rpm pbone net PKG SEARCH http pkgs org 两个都非常的好
  • 51单片机:用ADC0832做模数转换,测量电压大小

    51单片机 用ADC0832做模数转换 测量外界电压大小 问题要求 利用51单片机 外加一个ADC0832模数转换器 设计一个可以实时测量电压的电路 测量电压的范围是0 5V 允许误差 要求测出的电压用数码管实时显示 精确到小数点后两位 代
  • 【计算机视觉】PixelRNN 讲解

    任何的书写错误 排版错误 概念错误等 希望大家包含指正 PixelRNN 论文信息 作者 Aaron van den Oord Google DeepMind 期刊 PMLR JMLR 发布时间与更新时间 2016 01 25 2016 0
  • SQL列属性

    列属性 真正的约束字段的是数据类型 但是数据类型的约束很单一 需要有一些额外的约束 来保证数据的合法性 列属性有很多 NULL NOT NULL default primary key unique key auto increment c
  • Leetcode-4. Median of Two Sorted Arrays

    Topic background Given two sorted arrays nums1 and nums2 of size m and n respectively return the median of the two sorte
  • vue使用element plus引入ElMessage样式失效的问题

    样式失效如图 我使用的是按需引用 所以在main js中直接导入下面样式就行 import element plus theme chalk index css

随机推荐

  • 装饰模式与代理区别

    学着学着真容易懵 相同点 装饰者类与目标类要求实现同一接口 静态代理类与目标类要求也实现同一接口 装饰者类与静态代理类都可以实现增强目标类的功能 装饰者类与静态代理类中都具有目标类的引用 目的都是为了在其中调用目标类的方 法 不同点 装饰者
  • JSP 点击量统计

    2019独角兽企业重金招聘Python工程师标准 gt gt gt JSP 点击量统计 有时候我们需要知道某个页面被访问的次数 这时我们就需要在页面上添加页面统计器 页面访问的统计一般在用户第一次载入时累加该页面的访问数上 要实现一个计数器
  • 第5章 使用图像(html)

    第5章 使用图像 html 目录标题 5 1 有序列表 5 1 1 ol标签 5 1 2 有序列表的序号类型type 5 1 3 有序列表的起始数值start 5 2 无序列表 5 3 定义列表dl 5 4 列表的嵌套 5 5 练习题 5
  • windows 8 pro vl_微软MSDN原版Windows10/8/7/XP系统镜像与office下载地址大全

    相信如今大多数的用户开始讨厌GHOST形式安装操作系统 而使用微软MSDN原版系统进行安装 原因是网上分享的GHOST系统已经形成了一个黑色产业链 由于系统被删减过 众多功能缺失 并捆绑了众多无用的软件程序 还强制修改浏览器主页等让人讨厌的
  • 深度学习边缘检测 HED 训练自己的数据

    深度学习边缘检测 HED 训练自己的数据 数据集制作 使用labelme标注 选择lineStrip 线条束 标注 生成json文件 之后使用批量处理脚本将json文件转为边缘数据集 具体过程如下 首先将所有的json文件放入一个文件夹内
  • 云计算与海量数据处理技术

    云计算提供了一种对资源 按需索取服务 的能力 确保了使用时间与需要时间的完全一致 从而建立了一种分布式 高效率 低成本的IT商业模式 正是这些特点 使云计算成为IT发展的潮流与趋势 为解决广大系统设计人员深入研究与开发云计算系统的需要 培训
  • 小美的数组操作2---牛客周赛 Round 11

    注意给a 0 赋一个最小值 include
  • 1004 成绩排名 (20 分)

    1004 成绩排名 20 分 读入 n gt 0 名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含 1 个测试用例 格式为 第 1 行 正整数 n 第 2 行 第 1 个学生的姓名 学号 成绩
  • WEB应用防火墙安全技术要求与测试评价方法

    信息安全技术 WEB应用防火墙安全技术要求与测试评价方法 范围 本标准规定了WEB应用防火墙的安全功能要求 自身安全保护要求 性能要求和安全保证要求 并提供了相应的测试评价方法 本标准适用于WEB应用防火墙的设计 生产 检测及采购 规范性引
  • Android自定义View-Path的详细介绍

    一 构造方法 1 Path path new Path 空的构造方法 2 Path path new Path Path src 创建一个新的路径 并从src路径获取内容赋值给新的路径 二 Path常用的一些方法 分类 Path方法 备注
  • Verilog学习之位拆分与运算设计

    文章目录 前言 一 题目描述 二 实现思路 1 题意分析 2 状态分析 三 代码展示 总结 前言 今天我们做的是第五道题 位拆分与运算 这道题比较简单 我们只需要用到状态机的思想和 运算以及数据锁存的问题 接下来就让我们看看如何写这道题 位
  • Kibana server is not ready yet

    Kibana server is not ready yet 这个错误通常是由于Kibana服务无法连接到Elasticsearch引起的 这可能是由于以下原因之一 1 Elasticsearch没有启动 请确保Elasticsearch正
  • vivado时序分析之set_input_delay(三)

    本篇用vivado timing constraints wizard来进行set input delay的约束 set input delay界面如图一所示 包括interface clock synchronous alignment
  • Python第三方库在命令行使用pip安装完成之后只能使用idle,而不能pycharm的解决方法

    先使用pip install requests 或者其他模块也可以 然后如图 就可以看到这些模块被安装的位置 看到安装的一些模块都在这里 直接把site packages整个文件夹Ctrl C一下 然后找到Pycharm的项目文件夹 就是你
  • uniapp各个页面监听

    当前页面在退出时 uni emit zxpg zxpg res tips uni navigateBack 返回上一个页面 在上一个页面的onShow uni on zxpg data gt console log 接收事件test成功 d
  • Spring Boot 创建RESTful Web Service

    1 介绍 本篇将使用Spring Boot创建一个简单restful风格web服务 接受HTTP GET请求 http localhost 8080 greeting 响应体 respond 为一个JSON字符串 id 1 content
  • 解决网页不能复制

    按f12 console点圆圈斜杠那个图标 输入 document body contentEditable true
  • Spring框架概述 --- AOP, 拦截器, 过滤器

    Spring框架概述 AOP 拦截器 过滤器 AOP概念 过滤器 Filter 拦截器 Interceptor Spring AOP AOP Example Log Aspect 执行顺序是 过滤器 gt 拦截器 gt AOP AOP概念
  • NLP学习(四)规则分词-正向、逆向和双向最大匹配算法的中文分词-python3实现

    规则分词 规则分词是一种机械分词方法 主要通过维护词典 在切分语句时将语句的每个字符串和词表中的词逐一匹配找到则切分 找不到则不切分 具体包括正向最大匹配法 逆向最大匹配法和双向最大匹配法 正向最大匹配 算法描述 从左向右取待切分汉语句的m
  • 小程序包体积压缩优化,下降500k起步

    由于公司小程序包体积过大 已经达到1 9m了 微信定义小程序单个代码包 主包 分包 上限为2m 所以小程序该减肥了 如果你按我的步骤都做了 体积没有减少 ok 来打我 文章目录 第一步 最直接的方式 图片优化 第二步 优化体积主要方法 分包