4.9 KiB
4.9 KiB
主包体积进一步优化方案
当前状态
- 优化前主包体积: 2.74MB
- 第一次优化后: 2.19MB (已减少 550KB)
- 目标: < 1.5MB
- 还需减少: 约 690KB
已完成的优化 ✅
1. 删除未使用的大文件 (868KB)
- ✅
uni_modules/lime-echart/static/echarts.min.js(567KB) - ✅
lib/lunar-javascript@1.7.2.js(301KB)
2. 移动 train 图片到分包 (预计 400-500KB)
- ✅ 将
static/images/train/目录移到packageB/static/images/train/ - ✅ 更新所有引用路径
已减少总计: 约 1.27MB - 1.37MB
进一步优化建议
方案一:优化图片资源(预计减少 200-300KB)
1.1 压缩主包中的大图片
需要压缩的图片文件:
static/icon/background2.png- 检查大小static/imgs/avatar.jpg(48KB) → 目标: <25KBstatic/imgs/fristEntry.png- 检查大小- 其他
static/icon/目录下的图片
工具推荐:
- TinyPNG - PNG压缩
- Squoosh - 在线图片压缩
- ImageOptim - 批量压缩
1.2 将非首屏必需图片移到分包
- 将
static/imgs/目录移到分包(如果只在特定页面使用) - 检查
static/icon/中哪些图标可以移到分包
方案二:优化 Markdown 相关库(预计减少 296KB)
2.1 当前情况
lib/highlight/highlight-uni.min.js: 203KBlib/markdown-it.min.js: 93KB- 总计: 296KB
2.2 使用范围
- 主包:
pages/chat/chat.vue(主包页面) - 分包:
packageA/pages/moreJobs/moreJobs.vue - 组件:
components/md-render/md-render.vue - Store:
stores/userChatGroupStore.js
2.3 优化方案
方案A: 将 chat 页面移到独立分包(推荐)
- 创建新分包
packageChat - 将
pages/chat/移到分包 - 将 markdown 相关库移到分包
- 预计减少: 296KB + chat页面代码体积
方案B: 使用更轻量的代码高亮库
- 替换
highlight-uni.min.js为更轻量的库 - 或移除代码高亮功能(如果非必需)
方案C: 按需加载
- 使用动态 import 按需加载 markdown 库
- 只在需要时加载
方案三:检查并优化 components 目录
3.1 检查组件使用情况
需要检查的组件:
components/md-render/- 如果只在 chat 使用,可移到分包components/area-cascade-picker/- 检查使用范围- 其他大型组件
3.2 优化策略
- 将只在分包使用的组件移到对应分包
- 将大型组件按需加载
方案四:检查 pages 目录
4.1 可以移到分包的页面
检查以下页面是否可以移到分包:
pages/complete-info/- 补全信息相关(可能可以移到 packageA)pages/job/- 发布岗位相关(可能可以移到 packageA)pages/demo/- 演示页面(可以删除或移到测试分包)
4.2 优化策略
- 将非核心功能页面移到分包
- 删除测试/演示页面
方案五:清理未使用的 uni_modules
5.1 检查列表
检查以下模块是否在主包使用:
custom-waterfalls-flowuni-data-selectuni-dateformatuni-load-moreuni-popupuni-stepsuni-swipe-actionuni-transition
5.2 优化策略
- 如果只在分包使用,可以考虑移除主包引用
- 使用
easycom配置确保组件能正确加载
方案六:优化 common 目录
6.1 检查文件
common/vendor.js- 如果存在,检查是否可以优化common/globalFunction.js- 检查是否可以拆分- 其他 common 文件
推荐执行顺序
优先级1:立即执行(预计减少 300-400KB)
- ✅ 压缩主包中的大图片
- ✅ 将
pages/demo/删除或移到测试分包 - ✅ 检查并清理未使用的 uni_modules
优先级2:中期执行(预计减少 296KB)
- 将 chat 页面移到独立分包(推荐方案A)
- 或使用更轻量的代码高亮库(方案B)
优先级3:长期优化
- 优化 components 目录
- 优化 pages 目录结构
- 优化 common 目录
预期效果
| 优化项 | 预计减少 | 优先级 |
|---|---|---|
| 压缩图片 | 200-300KB | 🔴 高 |
| 移动 chat 页面到分包 | 296KB+ | 🔴 高 |
| 删除 demo 页面 | 50-100KB | 🟡 中 |
| 清理 uni_modules | 100-200KB | 🟡 中 |
| 优化 components | 50-150KB | 🟢 低 |
总计预计减少: 696KB - 1046KB
优化后主包体积: 约 1.14MB - 1.49MB ✅
注意事项
- 备份: 在执行优化前,请先备份项目
- 测试: 每个优化步骤后都要进行完整测试
- 引用路径: 确保所有文件引用路径正确更新
- 分包限制: 注意微信小程序分包大小限制(单个分包不超过 2MB)
- 主包限制: 主包大小必须控制在 1.5MB 以内
验证方法
- 使用微信开发者工具上传代码,查看主包体积
- 使用代码依赖分析工具验证优化效果
- 测试各个功能模块确保正常工作
- 检查分包加载是否正常