项目理念
精简可扩展的核心
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 工作线程,以遵循现代标准。 - Node.js 模块不能在浏览器中使用。
在添加新功能时,会遵循这些模式以创建面向未来的 API,这可能并不总是与其他构建工具兼容。
务实的性能方法
自 最初 以来,Vite 一直专注于性能。它的开发服务器架构允许 HMR 在项目规模扩大时保持快速。Vite 使用 esbuild 和 SWC 等原生工具来实现密集型任务,但将其余代码保留在 JS 中,以平衡速度和灵活性。在需要时,框架插件将利用 Babel 来编译用户代码。在构建时,Vite 目前使用 Rollup,其中捆绑大小和访问广泛的插件生态系统比原始速度更重要。Vite 将继续在内部发展,使用新出现的库来改进 DX,同时保持其 API 稳定。
在 Vite 之上构建框架
虽然用户可以直接使用 Vite,但它作为创建框架的工具而大放异彩。Vite 核心与框架无关,但每个 UI 框架都有经过打磨的插件。它的 JS API 允许应用程序框架作者使用 Vite 功能为其用户创建定制体验。Vite 包含对 SSR 原语 的支持,这些原语通常存在于更高级别的工具中,但对于构建现代 Web 框架至关重要。Vite 插件通过提供一种在框架之间共享的方式来完善整体功能。Vite 与 后端框架(如 Ruby 和 Laravel)搭配使用也很合适。
活跃的生态系统
Vite 的发展是框架和插件维护者、用户和 Vite 团队之间的合作。我们鼓励项目采用 Vite 后积极参与 Vite 的核心开发。我们与生态系统中的主要项目紧密合作,以最大限度地减少每次发布时的回归,并借助 vite-ecosystem-ci 等工具。它使我们能够在选定的 PR 上使用 Vite 运行主要项目的 CI,并让我们清楚地了解生态系统对发布的反应。我们努力在回归影响用户之前修复它们,并允许项目在发布后尽快更新到下一个版本。如果您正在使用 Vite,我们邀请您加入 Vite 的 Discord,并参与项目。