介绍

Nitro 是一个全栈框架,兼容任何运行时。它扩展了你的 Vite 应用,使其具备生产环境的服务器能力。

Vite 的主要目的是构建前端应用。它提供快速的开发服务器,可以通过热模块替换(HMR)转换和服务资源,但它不包含生产服务器。

创建 SPA 时,你常常需要添加 API 路由——无论是为了绕过 CORS、使用 API 令牌调用服务,还是实现你自己的后端逻辑。Nitro 允许你在项目的 routes/ 目录内创建服务器和 API 路由。你甚至可以通过创建 server.ts 文件,实现对整个服务器入口的控制。凭借其高级且运行时无关的方法,Nitro 让你可以使用任何 HTTP 库,比如 Elysiah3Hono

这还不是全部:运行 vite build 会同时构建你的后端和前端代码,并输出到一个优化的 .output/ 文件夹。该输出不仅兼容 Node.js、Bun 和 Deno,还支持许多无需配置的托管平台。这意味着你可以将全栈 Vite 应用部署到 Cloudflare Workers、Netlify、Vercel 等平台,且无需修改一行代码,同时还能利用平台特性,如 ESR、ISR 和 SWR。

Nitro 服务器具有极高的性能。通过结合代码拆分和编译路由,消除了运行时路由器的需求,仅保留最小的编译逻辑。这使其非常适合无服务器托管,因为启动时间几乎为 0ms,与项目规模无关,并且只加载和执行处理请求所需的代码。

拥有服务器还解锁了服务器端渲染功能。你可以使用你喜欢的模板引擎渲染 HTML,或者直接在服务器上使用 React、Vue 或 Svelte 等组件库。你甚至可以实现全栈通用渲染(universal rendering)与客户端水合(hydration)。Nitro 提供了基础和渐进的方法,帮助你实现目标。

服务器数据存储经常是必需的,Nitro 开箱即用包含一个运行时无关的键值存储层。它默认使用内存存储,但你可以连接 20 多种不同驱动(如文件系统、Redis、S3 等),将它们绑定到不同的命名空间,并且无需修改代码即可切换。

缓存是任何 Web 服务器的关键部分,这就是为什么 Nitro 支持对服务器路由和服务器函数的缓存,且缓存直接由服务器存储支持(通过 cache 命名空间)。

当键值存储不够用时,Nitro 还内置了一个 SQL 数据库。它默认使用 SQLite,但你可以通过相同的 API 连接和查询 10 多种数据库(Postgres、MySQL、PGLite 等)。

最后,Nitro 也可作为构建你自己元框架的基础。像 Nuxt、SolidStart 和 TanStack Start 这样的流行框架,完全或部分利用了 Nitro。

准备好试试了吗?跳转到 快速开始