peixue-dev/Archive/[一次性]小程序代码包优化总结-2026-01-31.md

3.1 KiB
Raw Blame History

小程序代码包优化总结

问题

  • 原始代码包: 40957KB (40MB)
  • 微信小程序主包限制: 2048KB (2MB)
  • 错误信息: main package source size 40957KB exceed max limit 2048KB

已完成的优化

1. 图片压缩

压缩了 10 张大图片(位于 src/static/button/

文件名 原始大小 压缩后 压缩率
supervision.jpg 4423KB 139KB 96.9%
assessor.jpg 4332KB 137KB 96.8%
companion.jpg 4328KB 127KB 97.1%
study-tour.jpg 4298KB 136KB 96.8%
special.jpg 4059KB 134KB 96.7%
planner.jpg 4041KB 122KB 97.0%
summer-camp.jpg 3964KB 122KB 96.9%
interest.jpg 3648KB 155KB 95.8%
one-on-one.jpg 3578KB 161KB 95.5%
parent-academy.jpg 2529KB 102KB 96.0%

总计: 从 38MB 压缩到 1.3MB,节省 36.7MB

2. 当前代码包大小

重新编译后的大小分布:

目录 大小
static 2.16MB
pages 0.69MB
teacher-package 0.60MB
user-package 0.45MB
manager-package 0.43MB
provider-package 0.34MB
activity-package 0.32MB
其他 ~1MB

总计: 约 6MB

问题分析

虽然图片已压缩,但代码包仍然是 6MB,超过主包 2MB 限制。

根本原因:

  • 项目使用了多个分包teacher-package, user-package, manager-package 等)
  • 但这些分包可能没有正确配置为微信小程序的分包
  • 所有代码都被打包到主包中

解决方案

方案1: 配置分包加载(推荐)

微信小程序支持分包加载,主包 + 所有分包总大小不超过 20MB。

需要在 src/pages.json 中配置 subPackages

{
  "pages": [
    // 主包页面(只保留首页、登录等核心页面)
  ],
  "subPackages": [
    {
      "root": "teacher-package",
      "pages": [
        // 教师端页面
      ]
    },
    {
      "root": "user-package",
      "pages": [
        // 用户端页面
      ]
    },
    {
      "root": "manager-package",
      "pages": [
        // 管理师端页面
      ]
    },
    {
      "root": "provider-package",
      "pages": [
        // 服务商端页面
      ]
    }
  ]
}

方案2: 进一步压缩图片

如果方案1不够可以

  • 将图片质量降低到 75
  • 将最大宽度降低到 800px
  • 使用 WebP 格式(需要兼容性检查)

方案3: 图片使用 CDN

将图片上传到服务器,使用网络图片而不是本地图片。

下一步操作

  1. 检查 pages.json 配置 - 确认分包是否正确配置
  2. 如果没有配置分包 - 需要重新配置 pages.json
  3. 重新编译 - 配置后重新编译小程序
  4. 在微信开发者工具中上传 - 检查主包和分包大小

相关文件

  • 压缩脚本: Archive/[一次性]压缩图片-PowerShell-2026-01-31.ps1
  • 编译脚本: Archive/[一次性]重新编译小程序-图片压缩后-2026-01-31.bat
  • 源图片目录: peidu/uniapp/src/static/button/
  • 编译输出: peidu/uniapp/dist/dev/mp-weixin/

时间记录

  • 2026-01-31: 完成图片压缩,从 40MB 降到 6MB
  • 下一步: 配置分包加载