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

124 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 小程序代码包优化总结
## 问题
- 原始代码包: **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`
```json
{
"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
- 下一步: 配置分包加载