uniapp 微信小程序主包 vendor.js过大如何优化

在使用uniapp开发微信小程序时,发现主包的vendor.js文件体积过大,导致小程序包体积超出限制。尝试了分包和压缩图片等措施后,vendor.js仍然占用较大空间。请问有什么有效的优化方案可以减小vendor.js的体积?比如是否可以按需引入依赖、移除未使用的库,或者有其他特定的配置或插件推荐?

2 回复
  1. 分包加载:将非核心代码移至分包,减少主包体积。
  2. 代码压缩:使用webpack等工具压缩vendor.js,删除无用代码。
  3. 按需引入:避免全量引入第三方库,只引入必要模块。
  4. 图片优化:压缩图片,使用网络图片或转base64。
  5. 检查依赖:移除未使用的库,减少打包体积。

UniApp 微信小程序主包 vendor.js 过大的优化方案如下:

1. 分包优化

  • 将非核心页面/组件移入分包,减少主包体积。
  • 配置 pages.json
{
  "subPackages": [
    {
      "root": "subpackage",
      "pages": [
        {"path": "pageA", "style": {}},
        {"path": "pageB", "style": {}}
      ]
    }
  ]
}

2. 按需引入第三方库

  • 使用 babel-plugin-import 或手动按需引入:
// 避免:import entire library
import { Button } from 'vant'; // 按需引入

3. 压缩代码与资源

  • 生产环境启用压缩:
    • vue.config.js 中配置:
module.exports = {
  configureWebpack: {
    optimization: {
      minimize: true
    }
  }
};

4. 使用小程序分包异步化

  • 通过 requireAsyncwx.loadSubpackage 动态加载分包,延迟非关键代码加载。

5. 检查并移除未使用代码

  • 使用 Webpack Bundle Analyzer 分析依赖,删除未引用的模块。

6. 优化静态资源

  • 图片转 Base64 或 CDN 托管,减少文件数量。
  • 压缩图片(TinyPNG 等工具)。

7. 升级 UniApp 和依赖

  • 确保使用最新版本,可能已包含体积优化。

8. 避免全局组件/样式

  • 局部注册组件,减少主包冗余。

注意事项:

  • 主包需控制在 2MB 内(微信小程序限制)。
  • 测试分包加载逻辑,确保功能正常。

通过以上方法可显著减小 vendor.js 体积,提升加载性能。

回到顶部