跳到主要内容

Vite 介绍

什么是 Vite?

Vite(法语意为"快速的",发音 /viːt/,类似"veet")是下一代前端构建工具,旨在为现代 Web 项目提供更快、更精简的开发体验。它由两个主要部分组成:

  1. 开发服务器:基于原生 ES 模块提供丰富的功能增强,例如极快的热模块替换(HMR)
  2. 构建命令:使用 Rolldown 打包代码,预配置为生产环境输出高度优化的静态资源

为什么需要 Vite?

在传统的打包工具(如 Webpack)出现之前,前端开发通常直接使用原生 ES 模块。然而,随着项目规模增长,直接使用原生模块会遇到以下问题:

  • 冷启动慢:大型项目的打包启动时间可能长达数分钟
  • 热更新慢:修改代码后,即使使用 HMR,更新也可能需要数秒
  • 构建速度慢:生产环境打包耗时较长

Vite 通过以下方式解决了这些问题:

开发环境:基于原生 ESM

Vite 在开发环境下不进行打包,而是利用浏览器原生的 ES 模块支持。当浏览器请求模块时,Vite 服务器按需编译并返回。这种方式的优势:

  • 冷启动极快:无需预先打包整个应用
  • 按需编译:只编译浏览器请求的模块
  • HMR 极速:模块更新是精确的,不受项目大小影响
传统打包工具:启动时打包整个应用 → 修改代码 → 重新打包相关模块 → 浏览器刷新
Vite:启动服务器(不打包)→ 浏览器请求模块 → 按需编译 → 修改代码 → 精确替换模块

生产环境:基于 Rolldown

虽然原生 ESM 在开发环境表现优异,但生产环境仍需要打包以获得最佳性能:

  • 代码分割:将代码拆分为更小的块,实现懒加载
  • ** tree-shaking**:移除未使用的代码
  • 压缩优化:最小化代码体积

Vite 使用 Rolldown(用 Rust 编写的高性能打包工具)进行生产构建,确保构建速度和输出质量。

Vite 的核心特性

极速的开发体验

  • 冷启动时间几乎与项目大小无关
  • HMR 更新在 50ms 内反映到浏览器
  • 使用 esbuild 预构建依赖,比传统 JS 打包器快 10-100 倍

开箱即用的配置

  • 对 TypeScript、JSX、CSS 等提供原生支持
  • 支持各种前端框架(Vue、React、Svelte 等)
  • 内置常见的开发功能(代理、环境变量等)

丰富的插件生态

  • 兼容 Rollup 插件
  • 官方维护的框架插件
  • 活跃的社区插件生态

浏览器支持

开发环境

Vite 假设使用现代浏览器进行开发,这意味着浏览器支持大多数最新的 JavaScript 和 CSS 特性。Vite 将 esnext 设置为转换目标,以最小化语法降级,让 Vite 提供的模块尽可能接近原始源代码。

生产环境

默认情况下,Vite 针对 Baseline Widely Available 浏览器(至少 2.5 年前发布的浏览器):

  • Chrome >= 111
  • Edge >= 111
  • Firefox >= 114
  • Safari >= 16.4

可以通过 build.target 配置选项自定义目标浏览器版本。对于旧版浏览器支持,可以使用官方插件 @vitejs/plugin-legacy

Vite 与其他工具对比

特性ViteWebpackParcel
开发启动速度极快(秒级)慢(分钟级)中等
HMR 速度极快(<50ms较慢中等
配置复杂度简单复杂简单
生产构建RolldownWebpackParcel
原生 ESM
TypeScript原生支持需配置原生支持

何时选择 Vite?

Vite 特别适合以下场景:

  1. 新项目:想要快速启动,无需复杂配置
  2. 大型项目:开发体验对团队效率至关重要
  3. 现代浏览器环境:不需要支持 IE 等旧版浏览器
  4. 框架开发:Vue、React、Svelte 等框架的官方推荐工具

学习路径

本教程将从基础到高级,全面讲解 Vite 的使用:

  1. 基础阶段:环境配置、项目创建、基本配置
  2. 核心功能:ESM、HMR、TypeScript、CSS 处理
  3. 进阶配置:环境变量、代理配置、构建优化
  4. 高级特性:SSR、库模式、插件开发
  5. 生产部署:构建配置、性能优化、部署实践

小结

Vite 代表了前端构建工具的新一代发展方向,它通过巧妙利用浏览器原生 ES 模块能力,在开发环境实现了极速的响应体验,同时在生产环境通过 Rolldown 保证了输出质量。无论是个人项目还是企业级应用,Vite 都能显著提升开发效率。

准备好开始 Vite 之旅了吗?让我们从环境配置开始。