原作于:https://captnotes.com/how_to_reduce_package_size_of_weapp

这两天被小程序代码包大小暴涨的问题困扰了挺久。简单说说怎么回事吧,就是之前好端端的微信小程序,最近配合新需求作了些改动,代码包大小突然翻了两倍多,从不到2MB一下子超过5MB,超过了腾讯对小程序代码包大小不得超过2MB的限制,从而没法上传,也就没法真机调试,更不能发布了。

首先想到的是把所有图片资源都上传到文件服务器,腾出本地空间。但图片并不多,还用TinyPNG压缩过,心算都知道不可能超过3MB。果然,即便移除了所有图片,代码包依然还有4MB多。

Google一番,不少人都遇到过这个问题。网上给出的解决办法几乎清一色都是拆分代码包,虽然单个代码包不能超过2MB,但通过拆分,总共不超过20MB就行。不是没想过拆,是感觉没这个必要,之前统计过,代码文件加一起也就1.2MB,所以就没考虑过分包。既然众口一词都是教人如何分包,万一真是包治百病的济世良方呢,试试看,反正不要钱。

具体的分包策略和方式请参考官方文档,这里懒得赘述。

半信半疑地分完包,主包还是超过4MB。要不就是改成云函数,但毕竟不是只写了个Hello World,改动太大,暂不考虑。但是网上找不到别的招儿了,没办法,自己琢磨、另辟蹊径呗。

文本文件不可能那么大,图片又都被我挪走了,那么嫌疑最大就是第三方SDK。我只引用了两个SDK,这次并没增加,只是将其中一个的版本升了级。首先查了一下该SDK的Bug列表,没有相关问题反馈。那会不会是升级之后,老版本没有及时清理,从而也被算进去了呢?因此我用npm uninstall命令卸载了该SDK,并重新构建了NPM,然而效果如同蚍蜉撼树。

直觉告诉我,方向肯定没问题。问题具体出在哪儿呢?我开始打起微信开发者工具的算盘。

有什么办法可以看到代码包里具体的文件大小吗?长话短说,此处省去N千字。“详情”→“基本信息”里的“代码依赖分析”猛地蹦到我的视线里,让我立马想起Android Studio里的Remove Unused Resources——对呀,找找看有没有无效的引用。

分析结果不仅按照方块面积来可视化文件大小,还可以列出哪些文件是没有被依赖的。这就好比泄露的内存,都没人用了,还在那儿占着地方。根据分析结果,从大到小将无依赖的代码文件该删的删、该砍的砍,在不影响小程序正常运行的前提下将主代码包大小降到2MB以下不是什么难事。

如何减小微信小程序代码包大小的更多相关文章

  1. 小程序代码包压缩 策略&方案

    微信小程序自推出以来,逐渐发展,目前正受到越来越多的青睐.其中很重要的一点得益于小程序的轻量级特性,每个小程序最多不超过2MB,招之即来挥之即去,相比于几十上百兆的APP,用户进入小程序,或者说,小程 ...

  2. 微信小程序代码片段

    微信小程序代码片段是一种可分享的小项目,可用于分享小程序和小游戏的开发经验.展示组件和 API 的使用.复现开发问题等等.分享代码片段会得到一个链接,所有拥有此分享链接的人可以在工具中导入此代码片段. ...

  3. [RN] React Native代码转换成微信小程序代码的转换引擎工具

    React Native代码转换成微信小程序代码的转换引擎工具 https://github.com/areslabs/alita

  4. 微信小程序代码构成

    一.小程序代码 app.json 是当前小程序的全局配置,包括了小程序的所有页面路径.界面表现.网络超时时间.底部tab等. { "pages":[ "pages/ind ...

  5. 微信小程序编译包的获取与解压——在手机中获取小程序编译包wxapkg

    准备工作: 微信关注需要下载编译包的小程序,然后点进去看一下,微信就会自动下载相应的编译包到手机上了. 获取小程序编译包: 据说root手机可以直接在手机的文件管理中查找wxapkg文件,自己尝试了下 ...

  6. 微信小程序代码大全 - 小程序开发福利

    小程序QQ交流群:131894955 小程序开发文档(Wepy) 小程序商城源码下载(weixin-app-shop) 小程序官网源码下载(weixin-app-cms) 微信管家平台JAVA版开源下 ...

  7. webstorm开发微信小程序代码提醒(webstorm开发工具)

    使用了微信提供的开发工具是真心难用,卡顿厉害.中英文切写注释换相当不爽.还没办法多开窗口,相信大家也遇到过这种现象. 下边我们介绍下webstorm来开发微信小程序的一些配置: File---sett ...

  8. 微信小程序代码开源啦

    想学习如何使用mpvue开发微信小程序吗? 想知道微信消息推送如何实现吗? 想知道如何用springboot开发小程序后台吗? 看这里就全都有了.耗时一个月打造的微信小程序:PSN折扣助手前后端所有源 ...

  9. 史上最全的微信小程序代码大全

    --------------------- 本文来自 fenxiangjun 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/fenxiangjun/article/d ...

随机推荐

  1. Shell系列(31)- 双分支if语句简介

    双分支if条件语句 if [ 条件判断式 ] then 条件成立,执行的程序 else 条件不成立,执行的程序 fi 需求 根据用户输入的目录名,判断是否存在 脚本: #!/bin/bash #使用r ...

  2. Linux系列(35) - 光盘yum源搭建(2)

    光盘搭建yum源 背景 当前Linux服务器没有网络,yum源下载好了,在光盘中 step-01 挂载光盘 mkdir /mnt/cdrom #建立挂载点 mount /dev/cdrom /mnt/ ...

  3. yapi 事件创建、修改等接口事件监听

    使用的yapi作为接口文档平台.出于业务需求需要对接口创建.修改.删除等事件进行监听. yapi已经实现并预留了这个口子,但是没有找到实现的文档.这里进行简单描述下使用的方式. 一.yapi创建.修改 ...

  4. Nginx禁止ip方式访问80、443端口

    在nginx.conf配置文件中 include /etc/nginx/conf.d/*.conf; 之前加入以下内容 server { listen 80 default; listen 443 d ...

  5. Java两种基础结构

    顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的 ...

  6. 实时渲染基础(4)纹理(Texture)

    目录 纹理映射(Texture Mapping) 球形贴图(Spherical Map) 立方体贴图(Cube Map) 纹理走样问题 Mipmap 各向异性过滤(Ripmap) 纹理应用技术(Tex ...

  7. eclipse下载安装

    1.下载 网址:https://www.eclipse.org/downloads/ 找到:eclipse-inst-jre-win64.exe 下载... 2.安装 找到-->Eclipse ...

  8. 8.3 MHA 搭建

    操作步骤 1.配置主从 1.1 master /etc/my.cnf server-id log-bin skip-name-resolve 1.2 master 建立repl用户 grant rep ...

  9. 基于TLS证书手动部署kubernetes集群

      一.简介 Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S. K8S是Google内部一个叫Borg的容器集群管理系统 ...

  10. FastAPI 学习之路(四十二)定制返回Response

    我们想要在接口中返回xml格式的内容,我们应该如何实现呢. from fastapi import FastAPI,Response @app.get("/legacy/") de ...