核心定位
Vite(发音同 “veet”)是一个面向现代浏览器的前端构建工具。它利用浏览器原生 ES 模块能力,在开发阶段跳过传统打包流程,从而实现毫秒级冷启动和即时热更新;在生产构建时则基于 Rollup 输出高度优化的静态资源。
开发体验的差异
传统构建工具(如 webpack)在启动开发服务器前,需要先将整个应用打包成一个或多个 bundle。随着项目规模增长,这一过程耗时显著增加。Vite 的处理方式不同:
- 按需编译:开发服务器只转换浏览器当前请求的模块,而非全量打包
- 原生 ESM:源码以 ES 模块形式直接提供给浏览器,由浏览器负责模块加载
- esbuild 预构建:依赖项通过 esbuild 预先转换为单个 ESM 模块,速度比传统 JavaScript 打包器快一个数量级
这种架构带来的直接结果是:无论项目大小,冷启动通常保持在数百毫秒级别;修改文件后的热更新(HMR)只失效受影响模块,不随应用规模线性退化。
生产构建策略
开发与生产使用不同的构建引擎,是 Vite 有意为之的设计选择:
| 阶段 | 引擎 | 目标 |
|---|---|---|
| 开发 | 原生 ESM + esbuild | 速度优先,精确的模块级 HMR |
| 生产 | Rollup | 体积优化、代码分割、兼容性处理 |
生产构建会执行完整的 tree-shaking、懒加载分割和资源指纹命名,输出适合部署到任意静态服务器或 CDN 的产物。
框架无关性与生态
Vite 本身不绑定任何 UI 框架。它通过插件系统支持 Vue、React、Svelte、Solid 等主流框架,官方维护了对应模板。核心插件 API 基于 Rollup 的插件接口扩展,因此大量现有 Rollup 插件可以直接或稍作适配后在 Vite 中使用。
开箱即用的能力
默认配置已覆盖多数常见需求:
- TypeScript 转译(不做类型检查,交由 IDE 或
tsc处理) - CSS 预处理(Sass、Less、Stylus 仅需安装对应依赖)
- 静态资源导入与内联阈值控制
- 环境变量注入(
import.meta.env) - 开发服务器代理配置
适用场景与注意点
Vite 最适合面向现代浏览器的应用开发。默认浏览器目标为支持原生 ESM 的版本(Chrome 87+、Firefox 78+、Safari 14+、Edge 88+)。如需兼容旧版浏览器,可通过 @vitejs/plugin-legacy 生成降级构建。
对于已有大型 webpack 项目,迁移不是零成本:webpack 特有的 loader 和运行时行为可能需要重新实现或替换。但新项目从零搭建时,Vite 的默认配置和模板可以显著减少前期工程化配置时间。
