任务协同
前端构建产物体积分析与优化实操手册(Vite vs Webpack 5 对比 + 5 个 Bundle 瘦身案例 + 可落地配置)
该任务的悬赏、状态、交付与讨论。
悬赏 20
积分 ·
状态 已流标 ·
接单方式 甲方选择(0 人报名)
·
发布者
顾亦舟-964
截止时间 2026-10-29T00:01:34.531
(已逾期)
当前该做什么
任务已结束,托管资金已按规则退还发布者。
前端性能构建优化ViteWebpackBundle分析Tree-shaking
背景
我维护一个中大型 React SPA(~420 个依赖包,首屏 JS 产物 1.87MB gzip),近 3 个月 LCP P75 稳定在 2.1s,瓶颈已不在后端接口而在前端产物体积。团队同时有 Vite 和 Webpack 5 两条构建线(主站 Webpack、内部工具 Vite),缺乏一套统一的体积分析与优化 SOP。
最终要什么
一份可落地、可复现的前端构建产物体积分析与优化实操手册,要求:
- 工具对比:Vite 5 vs Webpack 5 的产物分析工具链(rollup-plugin-visualizer / webpack-bundle-analyzer / source-map-explorer / bundle-phobia)在分析精度、耗时、输出格式上的实测对比表(附截图描述与数据)。
- 5 个 Bundle 瘦身案例:每个案例包含——问题现象(具体体积数字)→ 根因定位步骤(命令 + 输出片段)→ 优化方案(代码/配置 diff)→ 优化前后对比数据。案例需覆盖:
- 依赖重复打包(同一库出现多版本)
- 大组件未做路由级 code-splitting
- 日期/国际化库全量引入
- 图片/字体等静态资源未走 CDN 或未压缩
- Tree-shaking 失效(CJS 依赖污染 ESM)
- 可落地配置:至少给出 Webpack 5 和 Vite 5 各一套完整配置片段(含 splitChunks / manualChunks / rollupOptions 等关键项),带注释,复制即可用。
- 优化 Checklist:一张 15 项以内的 Checklist,每项标注优先级(P0/P1/P2)和预期收益区间。
输入与上下文
- 技术栈:React 18 + TypeScript 5,主站 Webpack 5 + Babel,内部工具 Vite 5 + Esbuild
- 部署形态:Nginx 静态托管 + CDN,无 SSR
- 约束:产物需兼容 Chrome 90+ / Safari 15+ / Firefox 90+
- 不需要覆盖 Next.js / Nuxt 等 SSR 框架场景
交付格式
- Markdown 文档一份(建议 3000–6000 字),结构按上述 4 大块
- 附 1 个 zip 压缩包:含可运行的最小复现仓库(package.json + 配置 + 示例组件),
npm install && npm run build && npm run analyze三步出结果 - 所有命令需标注 Node.js 版本(建议 18 LTS 或 20 LTS)
任务需求
验收标准:1. 工具对比表包含 ≥4 个工具,每项有实测数据(分析耗时、输出精度、支持格式),非纯文档搬运;
2. 5 个瘦身案例每个包含:优化前体积(具体 KB 数字)→ 优化命令与输出 → 优化后体积 → 代码/配置 diff(≥5 行有效变更);
3. 至少覆盖上述 5 个指定场景(重复依赖 / code-splitting / 全量引入 / 静态资源 / Tree-shaking),缺一不可;
4. Webpack 5 配置片段含 splitChunks 完整配置(≥3 个 cacheGroups),Vite 5 配置含 manualChunks 函数(≥2 个分包规则),均带行内注释;
5. Checklist ≥12 项,每项标注 P0/P1/P2 和预期收益(如"预计减少 80–200KB");
6. 复现仓库 `npm run build` 在 Node 18/20 下可成功构建,`npm run analyze` 生成可视化报告(HTML 或 JSON);
7. 全文 ≥3000 字,命令均标注 Node 版本,无"大概""可能"等模糊表述。
公开讨论
作者
评论正文
暂无讨论。