跳到内容

项目理念

精简的可扩展核心

Vite 并不打算覆盖每个用户的每个用例。Vite 旨在开箱即用地支持构建 Web 应用程序的最常见模式,但是 Vite 核心 必须保持精简,并具有较小的 API 表面,以保持项目的长期可维护性。由于 Vite 基于 Rollup 的插件系统,这个目标才有可能实现。可以作为外部插件实现的功能通常不会添加到 Vite 核心中。vite-plugin-pwa 是可以在 Vite 核心之外实现的一个很好的例子,并且有很多 维护良好的插件 来满足您的需求。Vite 与 Rollup 项目紧密合作,以确保插件可以尽可能地在普通 Rollup 和 Vite 项目中使用,并尝试在可能的情况下将所需的扩展推送到上游的 Plugin API。

推动现代 Web 开发

Vite 提供了具有引导性的功能,以推动编写现代代码。例如

  • 源代码只能用 ESM 编写,其中非 ESM 依赖项需要 预构建为 ESM 才能工作。
  • 鼓励使用 new Worker 语法 编写 Web Worker,以遵循现代标准。
  • Node.js 模块不能在浏览器中使用。

在添加新功能时,会遵循这些模式来创建面向未来的 API,这可能并不总是与其他构建工具兼容。

务实的性能方法

最初 以来,Vite 一直专注于性能。它的开发服务器架构允许 HMR 在项目扩展时保持快速。Vite 使用像 esbuildSWC 这样的原生工具来实现密集型任务,但保留其余代码为 JS,以平衡速度和灵活性。在需要时,框架插件将利用 Babel 来编译用户代码。在构建时,Vite 当前使用 Rollup,其中打包大小和访问广泛的插件生态系统比原始速度更重要。Vite 将继续在内部发展,使用新的库,因为它们会出现,以提高 DX,同时保持其 API 稳定。

在 Vite 之上构建框架

虽然用户可以直接使用 Vite,但它作为创建框架的工具而大放异彩。Vite 核心与框架无关,但每个 UI 框架都有完善的插件。它的 JS API 允许应用程序框架作者使用 Vite 功能来为他们的用户创建量身定制的体验。Vite 包括对 SSR 原语 的支持,这些原语通常出现在更高级别的工具中,但对于构建现代 Web 框架至关重要。Vite 插件通过提供一种在框架之间共享的方式来完善了整个图景。Vite 也非常适合与像 RubyLaravel 这样的 后端框架 配对使用。

活跃的生态系统

Vite 的发展是框架和插件维护者、用户和 Vite 团队之间的合作。我们鼓励项目采用 Vite 后积极参与 Vite 的核心开发。我们与生态系统中的主要项目密切合作,以最大限度地减少每个版本的回归,并借助像 vite-ecosystem-ci 这样的工具。它允许我们在选定的 PR 上运行使用 Vite 的主要项目的 CI,并为我们提供生态系统将如何对发布做出反应的清晰状态。我们努力在回归影响用户之前修复它们,并允许项目在发布后立即更新到下一个版本。如果您正在使用 Vite,我们邀请您加入 Vite 的 Discord 并参与到项目中。

在 MIT 许可下发布。(083ff36d)