【Vite】Vite是什么
Vite 是一款由 Vue 作者尤雨溪开发的 前端构建工具,于 2020 年推出,旨在解决传统构建工具(如 Webpack)在开发阶段的性能瓶颈,提供 极速的开发体验 和 优化的构建输出。
一、Vite 的核心特点
1. 开发阶段:基于原生 ESM 的极速启动
- 传统工具的问题:
Webpack 等工具在开发时需要先将所有代码(JS/TS、CSS、图片等)打包成 Bundle 才能启动开发服务器,项目越大,打包时间越长(可能需要数十秒甚至几分钟)。
- Vite 的解决方案:
利用浏览器原生支持的 ES 模块(ESM),开发时不进行完整打包,而是直接向浏览器提供原生 ESM 代码。浏览器请求某个模块时,Vite 再按需编译该模块(如处理 Vue、TS 等文件),实现 秒级启动 和 按需编译。
2. 热模块替换(HMR):极速更新
- Vite 的 HMR 机制无需刷新整个页面,仅更新修改的模块,且更新速度与项目规模无关(大型项目也能瞬间响应)。
- 对比 Webpack:Webpack 的 HMR 依赖打包后的模块关系,大型项目中更新可能有延迟;Vite 基于原生 ESM,更新逻辑更简单高效。
3. 生产构建:基于 Rollup 的优化输出
- 开发阶段用原生 ESM 提升速度,生产环境则使用 Rollup 进行打包(Rollup 对代码树摇、chunk 分割的优化更优),最终输出体积更小、性能更好的生产包。
- 支持自动代码分割、Tree-shaking(移除未使用代码)、懒加载等现代构建特性。
4. 开箱即用的功能支持
- 无需复杂配置,默认支持:
- TypeScript、JSX、CSS 预处理器(Less/Sass/Stylus)
- 静态资源处理(图片、字体等)
- 环境变量注入、路径别名
- 模块热替换、CSS 模块化
5. 灵活的插件系统
- 基于 Rollup 插件接口扩展,同时支持 Vite 专属插件,生态丰富(如适配 Vue、React、Svelte 等框架)。
二、Vite 与传统工具(Webpack)的核心差异
| 维度 | Vite | Webpack |
|---------------------|-------------------------------|------------------------------|
| 开发启动方式 | 基于原生 ESM,按需编译 | 打包成 Bundle 后启动 |
| 启动速度 | 毫秒级(与项目规模无关) | 随项目规模增长变慢(可能分钟级) |
| 热更新速度 | 极速(仅更新修改模块) | 较慢(依赖打包关系) |
| 生产构建工具 | 基于 Rollup | 内置打包器 |
| 配置复杂度 | 零配置起步,按需扩展 | 配置繁琐,需手动处理多数功能 |
| 适用场景 | 现代前端项目(Vue/React/TS等)| 复杂场景(如多页面、旧浏览器兼容) |
三、Vite 的适用场景
- 现代前端框架项目:Vue 3、React、Svelte 等(官方提供专属模板,如 `create vite@latest my-vue-app --template vue`)。
- 中小型项目:快速启动和开发体验优势明显。
- 对开发效率要求高的团队:减少等待打包的时间,提升迭代速度。
注意:若项目需要兼容 IE 等旧浏览器(不支持 ESM),或依赖大量非 ESM 模块的库,Vite 可能需要额外配置,此时 Webpack 可能更合适。
四、Vite 的基本使用流程
1. 创建项目:
使用 npm
npm create vite@latest
使用 yarn
yarn create vite
使用 pnpm
pnpm create vite
2. 选择框架:根据提示选择 Vue、React、 vanilla(原生 JS)等。
3. 安装依赖:
cd 项目名
npm install 或 yarn / pnpm install
4. 启动开发服务器:
npm run dev 启动后访问 http://localhost:5173
5. 构建生产包:
npm run build 输出到 dist 目录
五、总结
Vite 是前端构建工具的一次革新,核心优势在于 “开发阶段的极速体验”,通过抛弃传统 Bundle 模式,利用原生 ESM 实现了“随用随编”,大幅提升了开发效率。对于现代前端项目(尤其是使用 Vue 3、React 等框架的项目),Vite 已成为主流选择,逐步替代 Webpack 成为开发首选工具。