ArchitectureDingSheng

Vite Chunk Split (包体积优化)

Project: 海外直播教学平台
简历背景

"通过 Vite 拆包优化,使包体积减小 60%..."

面试题

你具体用了哪些 Vite/Rollup 配置策略达到了 60% 的体积缩减?

主要手段是:1. 依赖分包 (vendor split),将 node_modules 中的 React/Vue 等大库拆成独立 chunk 长期缓存。2. 动态导入 (Dynamic Import),对路由组件和重型组件(Video.js, WebRTC SDK)进行懒加载。3. Tree Shaking 深度优化,排查并替换了 lodash 等不支持 ESM 的库。
**核心配置 (vite.config.ts):** ```ts build: { rollupOptions: { output: { manualChunks(id) { if (id.includes('node_modules')) { // 基础库 if (id.includes('react') || id.includes('vue')) { return 'vendor-core'; } // 巨大的音视频库单独拆,避免阻塞首屏 if (id.includes('video.js') || id.includes('socket.io')) { return 'vendor-media'; } // 其他杂项 return 'vendor-utils'; } } } } } ``` **Gzip/Brotli:** 除了构建层面的拆包,还配合 Nginx 开启了 Brotli 压缩,进一步压缩了传输体积。