前端开发
用 Vite 构建 React 应用时如何做性能优化(构建…
在编写、审查或优化基于 Vite 的 React 组件时,按 6 大类 23 条规则优化构建产物、代码分割、开发体验、资源处理、环境变量与包体积。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
用 Vite 构建 React 应用时如通用
解决思路
- 构建优化(CRITICAL):配置 manual chunks 做 vendor 分离(如 vendor: ['react', 'react-dom'])。
- 构建优化:使用 OXC(默认)或 Terser 进行代码压缩(minification)。
- 构建优化:将 build.target 设为现代浏览器(baseline-widely-available)。
- 构建优化:按环境分别配置 sourcemaps(生产环境通常关闭)。
- 构建优化:确保使用 ESM 以正确进行 tree shaking。
- 构建优化:启用 Gzip 和 Brotli 压缩。
- 构建优化:使用基于内容的哈希(asset hashing)做缓存失效。
- 代码分割(CRITICAL):用 React.lazy() 做基于路由的拆分。
- 代码分割:策略性地放置 Suspense 边界。
- 代码分割:对重型组件使用动态 import()。
- 代码分割:对非关键组件做懒加载。
- 代码分割:在 hover/idle/viewport 时预取 chunk(prefetch hints)。
- 开发体验(HIGH):配置 optimizeDeps 以加快启动速度(如 include: ['react', 'react-dom'])。
- 开发体验:遵循 React Fast Refresh 模式。
- 开发体验:配置 HMR 服务器(如 server.hmr.overlay: true)。
- 资源处理(HIGH):做图片优化与懒加载。
- 资源处理:用 SVGR 将 SVG 作为 React 组件使用。
- 资源处理:制定 Web 字体加载策略。
- 资源处理:区分 public 目录与 JavaScript 导入的使用场景。
- 环境变量(MEDIUM):客户端变量使用 VITE_ 前缀。
- 环境变量:使用按 mode 区分的环境文件。
- 环境变量:绝不在客户端代码中暴露敏感数据。
- 包分析(MEDIUM):使用 rollup-plugin-visualizer 分析打包体积。
- 在 vite.config.ts 中配置 resolve.alias(如 '@' 指向 ./src)、build.chunkSizeWarningLimit: 500、server.port: 3000 等基础项。
- 在 src/vite-env.d.ts 中通过 ImportMetaEnv 接口声明 VITE_ 环境变量类型。
- 按 rules/ 目录下的单条规则文件(如 rules/build-manual-chunks.md、rules/split-route-lazy.md、rules/env-vite-prefix.md)查阅详细说明与代码示例。