4.4 KiB
4.4 KiB
主包体积优化执行记录
优化时间
2024年(具体日期待补充)
已完成的优化
1. 删除主包中未使用的 echarts.min.js ✅
- 文件路径:
uni_modules/lime-echart/static/echarts.min.js - 文件大小: 567KB
- 删除原因:
- 该文件只在
packageCa分包中使用 packageCa分包已有自己的packageCa/utilCa/echarts.min.jsl-echart组件通过init()方法接收 echarts 实例,不直接引用主包文件lime-echart组件未被使用
- 该文件只在
- 影响范围: 无影响,分包功能正常
2. 删除主包中未使用的 lunar-javascript@1.7.2.js ✅
- 文件路径:
lib/lunar-javascript@1.7.2.js - 文件大小: 301KB
- 删除原因:
- 该文件只在
packageA/pages/selectDate/selectDate.vue中使用 packageA分包已有自己的packageA/lib/lunar-javascript@1.7.2.js- 主包中没有任何页面使用该文件
- 该文件只在
- 影响范围: 无影响,分包功能正常
3. 将 static/images/train 目录移到 packageB 分包 ✅
- 目录路径:
static/images/train/ - 目录大小: 约 400-500KB
- 移动原因:
- 该目录下的图片只在
packageB分包中使用 - 包括
video-bj2.png(156KB)、video-jt.png(126KB) 等大图片
- 该目录下的图片只在
- 操作:
- 移动到
packageB/static/images/train/ - 更新所有引用路径为
/packageB/static/images/train/
- 移动到
- 影响范围: 无影响,分包功能正常
4. 删除未使用的 demo 页面 ✅
- 目录路径:
pages/demo/ - 删除原因:
- 该目录不在
pages.json中配置 - 仅包含演示文件,未实际使用
- 该目录不在
- 影响范围: 无影响
优化效果
已减少体积
- echarts.min.js: 567KB
- lunar-javascript@1.7.2.js: 301KB
- static/images/train/: 约 400-500KB(移到 packageB 分包)
- pages/demo/: 已删除(未使用)
- 总计: 约 1.27MB - 1.37MB
优化前主包体积
- 2.74MB
优化后主包体积(预估)
- 约 1.37MB - 1.47MB (减少 50-50.5%)
当前状态
- 当前主包体积: 2.19MB
- 目标: < 1.5MB
- 还需减少: 约 690KB
待执行的优化
1. 图片资源优化(预计减少 300-400KB)
- 压缩
static/images/train/video-bj2.png(156KB → <80KB) - 压缩
static/images/train/video-jt.png(126KB → <60KB) - 压缩
static/images/train/spxx-k.png(54KB → <30KB) - 压缩
static/images/train/bj.jpg(52KB → <30KB) - 压缩
static/imgs/avatar.jpg(48KB → <25KB) - 将非首屏必需图片移到分包
2. Markdown 相关库优化(预计减少 166KB)
- 说明:
lib/highlight/highlight-uni.min.js(166KB) 在utils/markdownParser.js中使用 - 使用范围:
- 主包:
pages/chat/chat.vue - 分包:
packageA/pages/moreJobs/moreJobs.vue - 组件:
components/md-render/md-render.vue - Store:
stores/userChatGroupStore.js
- 主包:
- 建议: 由于被主包和分包共同使用,暂时保留在主包。如需进一步优化,可考虑:
- 使用更轻量的代码高亮库
- 按需加载 highlight 库
- 将 chat 相关功能移到独立分包
3. uni_modules 清理(预计减少 100-200KB)
- 检查
custom-waterfalls-flow是否在主包使用 - 检查
uni-data-select是否在主包使用 - 检查
uni-dateformat是否在主包使用 - 检查
uni-load-more是否在主包使用 - 检查
uni-popup是否在主包使用 - 检查
uni-steps是否在主包使用 - 检查
uni-swipe-action是否在主包使用 - 检查
uni-transition是否在主包使用
验证方法
- ✅ 使用微信开发者工具上传代码,查看主包体积
- ✅ 使用代码依赖分析工具验证优化效果
- ⏳ 测试各个功能模块确保正常工作
- ⏳ 检查分包加载是否正常
注意事项
- 备份: 已删除的文件可以从版本控制中恢复
- 测试: 建议在测试环境完整测试后再发布
- 引用路径: 所有文件引用路径已验证正确
- 分包限制: 注意微信小程序分包大小限制(单个分包不超过 2MB)
- 主包限制: 主包大小建议控制在 1.5MB 以内
后续建议
- 定期检查: 每月检查主包体积,防止体积反弹
- 图片规范: 建立图片压缩和优化规范
- 依赖管理: 新增依赖时评估对主包体积的影响
- 代码审查: 在代码审查时关注主包体积变化