Webpack 和 Vite 有什么区别
先理解原理和示例,再练习完整口述与追问。
回答要点
从开发启动、模块转换、依赖处理、HMR、生产构建和插件生态解释,别只说“Vite 快”。经典 Vite 开发流程利用浏览器 ESM 按需提供源码;生产构建与底层工具随版本演进,不能把旧版本的 esbuild / Rollup 组合说成永久事实。
回答时先说项目版本、规模和瓶颈,再比较迁移成本。Vite 官方设计与演进说明、当前生产构建工具说明
原理拆解
Webpack 通常围绕模块图与 bundle 组织构建,可通过 Loader/Plugin 扩展;Vite 的典型开发流程借助原生 ESM 按需提供应用模块并对依赖做相应处理,避免每次开发修改都等待全量应用打包。生产后端与预构建实现随主版本演进,解释时要说清项目版本,不能把某个时期的 esbuild/Rollup 组合永远当成所有 Vite 的定义。
示例与推演
开发慢时分别测冷启动、依赖处理、首次页面加载与 HMR;生产则比较产物体积、拆包、兼容性和部署行为。本项目是 Express/EJS 直接输出 HTML,并不需要为了“现代化”额外接 Vite。旧 Vue2 项目迁移构建链前,应核对插件、Node、Babel 和组件库兼容。
易错点
开发工具不会替你解决接口慢、运行时长任务和业务竞态。不能仅凭启动快就断言线上一定更快。
参考回答可直接练习口述
Webpack 与 Vite 都能处理模块和构建,但开发服务的路径不同。经典 Vite 用浏览器 ESM 按需提供源码并预处理依赖,减少启动时必须打完整包的工作;Webpack 通过其模块图和构建机制提供开发及 HMR,实际表现还取决于版本与配置。生产工具链不能背成固定组合:Vite7 等传统版本主要用 Rollup 做生产打包,当前官方 Vite8 文档使用 Rolldown。选择看现有插件、兼容、规模和迁移成本。