Vite 构建优化全攻略:快,还能更快!

3 阅读3分钟

⚡Vite 构建优化全攻略:快,还能更快!

🏗️ 项目越做越大,构建却越来越慢?从启动到打包慢得像蜗牛?别怪电脑,Vite 可以更快,只是你还没“调教”好它。


🧠 为什么 Vite 被称为“下一代前端构建工具”?

对比项WebpackVite
启动速度慢(读取全部依赖)快(基于原生 ES 模块 + 按需编译)
开发服务器内存热更新慢基于原生模块热更
构建性能中规中矩极致快(结合 esbuild + rollup)
插件体系成熟丰富现代 + 快速发展中

Vite 本身就快,但项目一大、插件一多、组件一堆,构建速度还是可能变慢。本篇文章带你全面优化!


🚦 优化一:启动速度提升(dev server)

✅ 1. 使用 optimizeDeps.include 强制预构建

export default defineConfig({
  optimizeDeps: {
    include: ['lodash-es', 'axios']
  }
});

可显著减少首次启动时间,尤其在组件库中引入多层依赖时。


✅ 2. 使用 alias 避免重复解析

resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src'),
    vue: 'vue/dist/vue.runtime.esm-bundler.js',
  }
}

能显著减少路径计算、模块重复扫描。


✅ 3. 精简插件数量 & lazy 加载插件

  • 将部分仅构建时使用的插件(如分析插件)放在 build.only 条件内
  • 避免多个插件做相同事(如多个 svg loader)

📦 优化二:打包速度与体积控制

✅ 1. 开启 esbuild 代替 terser 压缩(默认已支持)

build: {
  minify: 'esbuild', // 比 terser 快 10 倍
}

✅ 2. 配置 rollupOptions.output.manualChunks 做代码分包

build: {
  rollupOptions: {
    output: {
      manualChunks(id) {
        if (id.includes('node_modules')) {
          return 'vendor';
        }
      }
    }
  }
}

可显著提升缓存利用率,避免打包一次拉全量依赖。


✅ 3. 移除 console/logs(仅生产)

esbuild: {
  drop: ['console', 'debugger']
}

减少体积,避免敏感日志泄露。


✅ 4. gzip or brotli 压缩资源

import viteCompression from 'vite-plugin-compression';

plugins: [
  viteCompression({
    threshold: 1024 * 10, // 仅压缩大于 10KB 的文件
  })
]

对访问量大的站点尤为重要,CDN 会感激你。


🧪 优化三:资源加载与缓存策略

✅ 1. 使用 assetInlineLimit 控制小图转 base64

build: {
  assetsInlineLimit: 4096, // 4KB 以下的转为 base64
}

小图 base64 可减少请求数,大图仍使用 URL 加载。


✅ 2. 配置长效缓存策略

build: {
  rollupOptions: {
    output: {
      entryFileNames: `assets/[name].[hash].js`,
      chunkFileNames: `assets/[name].[hash].js`,
      assetFileNames: `assets/[name].[hash].[ext]`,
    }
  }
}

结合 CDN 缓存,用户体验飞升。


📈 优化四:分析构建结果、精准下刀

安装分析工具:

npm i rollup-plugin-visualizer -D

然后:

import { visualizer } from 'rollup-plugin-visualizer';

plugins: [
  visualizer({ open: true })
]

你将看到组件体积图谱、依赖链、代码分布,有的放矢做瘦身。


💡 Bonus:针对大项目的构建技巧

技巧说明
多入口构建用于多系统共用一套构建(如管理后台 + 官网)
分环境打包配置使用 --mode 切换 .env 文件,控制打包行为
使用 monorepo + vite sub config对大型系统拆分子项目模块构建
SSR & 中间层构建优化使用 vite-ssr 配合 node 层做精准渲染

🧠 总结:Vite 快,但你能让它更快

通过合理配置和优化,Vite 可以:

  • ⏱️ 秒级冷启动
  • 📦 构建包体积大幅减小
  • 🚀 热更新丝滑流畅
  • 💡 复杂项目模块清晰、可控

没有最快,只有更快;Vite 构建优化,一定能让你的工程更“丝滑”。

👍 如果你觉得这篇文章有帮助,欢迎点赞、关注、收藏,后续我会努力更新更多的前端构建工具方面的实用技巧。