跳转到内容

项目哲学

精简且可扩展的核心

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 插件提供了一种在框架间共享的方式,从而补全了拼图。当与 后端框架(如 RubyLaravel)搭配使用时,Vite 也是一个绝佳的选择。

活跃的生态系统

Vite 的演进是框架和插件维护者、用户以及 Vite 团队之间通力合作的结果。一旦项目采用 Vite,我们鼓励积极参与 Vite 的核心开发。我们与生态系统中的主要项目密切合作,通过 vite-ecosystem-ci 等工具最大限度地减少每个版本的回归问题。它使我们能够在选定的 PR 上运行使用 Vite 的主要项目的 CI,并为我们提供生态系统对版本发布的反应情况。我们努力在回归问题影响用户之前将其修复,并让项目在版本发布后尽快更新。如果您正在使用 Vite,我们诚邀您加入 Vite Discord 并参与到项目中来。