项目理念
精简的可扩展核心
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 使用像 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 并参与到项目中。