做原生微信小程序时,包体大小是一个很现实的问题。

功能越写越多、图片越加越多、组件越拆越细,最后很容易发现主包变大,冷启动变慢,审核和体验都受影响。

我现在控制小程序包体,主要从几个方面入手。

1. 尽量控制主包内容

主包只放启动必须用到的页面和公共逻辑。

一些低频页面,比如设置页、详情页、活动页、后台入口类页面,可以考虑放到分包里。

这样用户第一次打开小程序时,不需要一次性加载所有内容。

2. 及时做分包

微信小程序支持分包加载,这是控制体积最直接的方式。

我的习惯是:页面只要明显属于某个独立模块,就尽早考虑分包,而不是等到主包快超限再拆。

比如:

  • 用户中心
  • 商品详情
  • 活动页面
  • 内容详情
  • 管理类页面
  • 这些都适合按模块拆出去。

    3. 图片不要直接塞进项目里

    图片是包体膨胀最常见的原因。

    除非是必须随包发布的小图标,否则大图、内容图、轮播图都应该放到 CDN 或服务器上。

    本地图片要注意:

  • 压缩尺寸
  • 使用合适格式
  • 删除没用的旧图
  • 避免一张图多处重复存放
  • 很多小程序包体大,不是代码太多,而是图片管理太随意。

    4. 清理无用组件和样式

    原生小程序写久了,很容易留下废弃页面、废弃组件和没用的 WXSS。

    这些东西单个不大,但积累起来会越来越明显。

    每次上线前,我会简单检查:

  • 是否有没注册但还存在的页面
  • 是否有没引用的组件
  • 是否有旧样式文件
  • 是否有测试数据和临时文件
这个动作很普通,但很有效。

5. 公共代码不要过度堆积

很多人喜欢把工具函数都放到一个大文件里,最后所有页面都会间接引入一堆不需要的逻辑。

公共代码应该是真的公共,而不是“暂时不知道放哪”。

如果某个方法只有一个模块使用,就放在模块内部即可。

6. 控制第三方库

原生微信小程序不一定需要很多第三方库。

能用原生 API 解决的,就不要随便引入完整库。

尤其是一些只用到一个小功能,却引入一整个工具包的情况,很不划算。

7. 定期看构建结果

不要等到包体超限才开始优化。

开发过程中就应该定期看构建结果,关注主包和分包体积变化。

如果某次提交之后包体明显变大,就及时回头看原因。

总结

小程序控制包体,本质上不是某一个技巧,而是一种开发习惯。

我的优先级是:

1. 主包保持轻2. 能分包就分包3. 图片尽量走远程4. 少引入不必要的库5. 定期清理无用文件

只要这些习惯坚持下来,原生微信小程序的包体一般都能保持在比较健康的范围。