本文档全面介绍了 Vite,涵盖其核心架构、基本概念和设计理念。它为理解 Vite 如何作为下一代前端构建工具和开发服务器奠定了基础。
有关特定子系统的详细信息,请参阅核心架构、插件系统、配置系统、开发服务器和构建过程。
Vite (法语意为“快速”,发音为/vit/) 是一款现代前端构建工具,通过两大核心能力显著提升开发体验:
Vite 通过在开发过程中利用原生 ES 模块,消除了在提供代码之前进行打包的需求,从而区别于传统的打包工具。这种方法提供了近乎即时的服务器启动和模块更新。
来源:packages/vite/package.json7 README.md27-31
Vite 的架构围绕模块化设计构建,并在开发和生产工作流程之间进行清晰划分。
核心系统映射
主要入口点映射到特定的代码实体
| 系统组件 | 代码实体 | 文件位置 |
|---|---|---|
createServer() | 主要的开发服务器函数 | packages/vite/src/node/server/index.ts |
build() | 主要的构建函数 | packages/vite/src/node/build.ts |
resolveConfig() | 配置解析器 | packages/vite/src/node/config.ts |
| 插件容器 | PluginContainer 类 | packages/vite/src/node/server/pluginContainer.ts |
来源:packages/vite/package.json19-20 packages/vite/package.json21-32
Vite 使用灵活的配置系统,以 vite.config.js 文件为中心
Vite 的插件系统扩展了 Rollup 的插件 API,并增加了 Vite 特定的钩子
来源:packages/vite/package.json83-153
Vite 在开发与生产中的运行方式根本不同
来源:README.md29-31 packages/vite/package.json84 packages/vite/package.json88
Vite 包含 create-vite,用于快速初始化项目
Vite 通过其插件生态系统与各种工具和框架集成
| 集成类型 | 示例 | 插件包 |
|---|---|---|
| 框架 | React, Vue, Svelte | @vitejs/plugin-react, @vitejs/plugin-vue |
| CSS 预处理器 | Sass, Less, Stylus | 内置支持 |
| 旧版支持 | IE11, 旧版浏览器 | @vitejs/plugin-legacy |
| 后端集成 | Express, Koa | Manifest 生成 |
来源:packages/plugin-legacy/package.json1-4 packages/vite/package.json155-167 packages/vite/package.json94-153
Vite 的设计优先考虑
架构通过分离开发速度(原生 ESM)和生产优化(打包)之间的关注点,同时在两种模式下保持一致的插件 API,体现了这些原则。
来源:README.md16-35 packages/vite/package.json7 packages/vite/LICENSE.md1-25