Vite 提供了多种性能优化策略,可以帮助开发者提升项目的构建和运行性能。以下是 Vite 性能优化的关键方法:
依赖预构建优化:
- 合理配置 optimizeDeps:
javascriptexport default { optimizeDeps: { include: ['lodash'], // 强制预构建 exclude: ['some-large-lib'] // 排除大型库 } }
- 使用缓存:Vite 会缓存预构建结果,避免重复构建
构建优化:
- 代码分割:
javascriptexport default { build: { rollupOptions: { output: { manualChunks: { vendor: ['react', 'react-dom'], utils: ['lodash', 'axios'] } } } } }
-
Tree-shaking:Vite 自动移除未使用的代码
-
压缩优化:
javascriptexport default { build: { minify: 'terser', // 或 'esbuild' terserOptions: { compress: { drop_console: true // 移除 console } } } }
开发环境优化:
- 禁用 Source Map:
javascriptexport default { build: { sourcemap: false } }
- 减少文件监听:
javascriptexport default { server: { watch: { ignored: ['**/node_modules/**', '**/.git/**'] } } }
资源优化:
- 调整内联阈值:
javascriptexport default { build: { assetsInlineLimit: 4096 // 小于 4KB 的资源内联 } }
-
使用 CDN:将大型依赖放到 CDN
-
图片优化:使用 WebP 等现代格式
CSS 优化:
-
CSS 代码分割:Vite 自动提取 CSS 到独立文件
-
CSS 压缩:
javascriptexport default { build: { cssCodeSplit: true, cssMinify: 'lightningcss' // 更快的 CSS 压缩 } }
插件优化:
-
按需加载插件:只在需要时加载插件
-
使用轻量级插件:选择性能更好的替代方案
缓存策略:
-
文件名 Hash:使用
[hash]实现长期缓存 -
HTTP 缓存:配置服务器缓存策略
性能监控:
- 构建分析:
bashnpm run build -- --mode analyze
- 使用 rollup-plugin-visualizer 分析打包结果
最佳实践:
- 避免过度优化,先分析瓶颈
- 使用最新的 Vite 版本
- 合理配置,避免不必要的优化
- 定期审查依赖,移除未使用的包
- 使用 CDN 加速静态资源