项目哲学
精简且可扩展的核心
Vite 旨在支持构建 Web 应用最常见的模式,同时保持 Vite 核心的精简和长期可维护性。我们坚信,支持多种用例的最佳方式是提供强大的原语和 API,供插件构建使用,我们也会积极扩展核心功能以使 Vite 更具可扩展性。Vite 的插件系统基于 Rollup 插件 API 的超集,它使得像 vite-plugin-pwa 以及许多其他维护良好的插件能够满足您的需求。Vite 的打包工具 Rolldown 保持了与 Rollup 插件接口的兼容性,因此插件通常可以同时在 Vite 和纯 Rollup 项目中使用。
推动现代 Web
Vite 提供了一些具有主张性的功能,以推动现代代码的编写。例如:
- 源代码只能用 ESM 编写,非 ESM 依赖项需要预打包为 ESM 才能正常工作。
- 鼓励使用
new Worker语法编写 Web Worker,以遵循现代标准。 - Node.js 模块不能在浏览器中使用。
在添加新功能时,我们会遵循这些模式来创建面向未来的 API,这些 API 可能并不总是与其他构建工具兼容。
务实的性能方法
自诞生之初,Vite 就一直专注于性能。其开发服务器架构实现了在项目规模扩大时仍能保持快速的 HMR(热模块替换)。Vite 基于包括 Oxc 工具链和 Rolldown 在内的原生工具来实现高负荷任务,同时保持其余代码使用 JS 编写,以平衡速度和灵活性。在需要时,框架插件会利用 Babel 来编译用户代码。得益于 Rolldown 对 Rollup 插件的兼容性,Vite 可以访问广泛的插件生态系统。
基于 Vite 构建框架
尽管用户可以直接使用 Vite,但它作为创建框架的工具更显卓越。Vite 核心与框架无关,但针对每个 UI 框架都有完善的插件。其 JS API 允许应用框架作者使用 Vite 功能为用户打造量身定制的体验。Vite 包含对 SSR 原语的支持,这些通常存在于更高级的工具中,但却是构建现代 Web 框架的基础。Vite 插件提供了一种在框架间共享的方式,从而补全了拼图。当与 后端框架(如 Ruby 和 Laravel)搭配使用时,Vite 也是一个绝佳的选择。
活跃的生态系统
Vite 的演进是框架和插件维护者、用户以及 Vite 团队之间通力合作的结果。一旦项目采用 Vite,我们鼓励积极参与 Vite 的核心开发。我们与生态系统中的主要项目密切合作,通过 vite-ecosystem-ci 等工具最大限度地减少每个版本的回归问题。它使我们能够在选定的 PR 上运行使用 Vite 的主要项目的 CI,并为我们提供生态系统对版本发布的反应情况。我们努力在回归问题影响用户之前将其修复,并让项目在版本发布后尽快更新。如果您正在使用 Vite,我们诚邀您加入 Vite Discord 并参与到项目中来。
