前端/移动开发面试题更新 2026-08-05

针对 Webpack 构建产物体积偏大的情况,请说明你的优化思路和具体手段。

前端/移动开发性能优化技术原理方案权衡Webpack

考察说明

考查候选人对前端工程化中打包体积优化的理解与实践经验。

回答思路

  1. 【回答框架 1】定位分析先行:借助 webpack-bundle-analyzer 可视化依赖体积,识别大模块,用 speed-measure-webpack-plugin 分析构建耗时,找出优化切入点。
  2. 【回答框架 2】代码层面:开启 tree shaking,使用 ES Module 写法,配置 sideEffects:false 移除未用代码;拆分第三方库,通过 externals 或 DLL 预编译减少重复打包。
  3. 【回答框架 3】资源优化:小图片用 base64 内联,大文件用 CDN 并设置 hash 缓存;压缩 CSS 和 JS,使用 TerserPlugin 去除无用代码,CSS 使用 optimize-css-assets-webpack-plugin。
  4. 【回答框架 4】拆包策略:用 SplitChunksPlugin 将公共依赖和业务代码分离,按需加载路由页面,实现首屏最小化。
  5. 【关键点 1】使用 webpack-bundle-analyzer 分析体积分布
  6. 【关键点 2】开启 tree shaking 并配置 sideEffects
  7. 【关键点 3】利用 SplitChunksPlugin 拆分公共代码和业务代码
  8. 【关键点 4】资源压缩与 CDN 结合
  9. 【关键点 5】路由懒加载实现按需加载
  10. 【易错点 1】过度拆包可能导致请求过多,需平衡包体积和请求数
  11. 【易错点 2】tree shaking 依赖 ES Module,CommonJS 模块无法摇树
  12. 【易错点 3】DLL 配置复杂,维护成本高,新版本可考虑内置缓存