Nitro 是一个跨平台、高性能的服务端构建与运行框架,最早是 Nuxt.js 的官方服务引擎,现在已经成长为独立的全栈服务底座。
Nitro v3 beta 全新发布,团队选择彻底回归本质,重新设计:
- 更精简的 API
- 全面对齐 Web 标准
- 原生级 Rolldown + Vite v8 集成
- 对开发者与自动化工具都更友好的体验
为什么要做新一代服务端构建?
随着 Serverless、边缘计算普及,服务端正面临前端多年前解决过的难题:
- 冷启动:每毫秒都关键
- 内存限制:臃肿依赖直接超限
- 包体积:决定部署与启动速度
- 运行环境:Node、Deno、Bun、Cloudflare Workers、Vercel 全要兼容
Nitro v3 带来原生 Vite 插件,一行配置就能把任意 Vite 项目变成全栈应用。
// vite.config.ts
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";
export default defineConfig({
plugins: [nitro()],
});
加入后立刻拥有:
- 文件系统路由式 API
- 与前端构建深度融合的 SSR
- 一次 vite build 同时产出前端 + 后端优化产物(.output)
- 支持 React / Vue / Solid.js 等任意框架
🚀 默认高性能,零冗余
Nitro 在构建期编译路由,运行时无传统路由库,按需加载。 处理一次请求,只加载、执行必需代码。
- 标准预设打包体积 < 10kB
- 可通过 srvx 接近原生速度运行
- 保留 H3 全部优秀能力
- 依赖从 321 个砍到 不足 20 个,极致轻量化
🖌️ 全新身份:nitro 替代 nitropack
v3 最大的 break change 之一:包名彻底简化。
- 旧:nitropack
- 新:nitro
导入路径全面清爽化:
import { defineNitroConfig } from "nitro/config";
import { defineHandler } from "nitro";
import { useStorage } from "nitro/storage";
import { useDatabase } from "nitro/database";
不再需要深层 nitropack/runtime/*,单元测试、非构建环境也能轻松导入。
🔧 自由选择框架:不绑定,不限制
Nitro v3 不对你的 HTTP 层做强制约定。 你可以用文件路由,也可以完全自定义入口,接入任何兼容 Web 标准的框架
// server.ts
import { Hono } from "hono";
const app = new Hono();
app.get("/", (c) => c.text("Hello from Hono!"));
export default app;
Hono、Elysia、h3……只要遵循 Web 标准,就能无缝运行。
🌐 H3 v2:全面 Web 标准化
Nitro v3 升级到 H3 v2,完全基于原生 Web 标准重写: Request / Response / Headers / URL
代码更干净、可移植性更强:
// routes/hello.ts
import { defineHandler } from "nitro";
export default defineHandler((event) => {
const ua = event.req.headers.get("user-agent");
return { message: "Hello Nitro v3!", ua };
});
读取请求体直接用原生 API,无封装、无多余抽象:
// routes/submit.ts
import { defineHandler } from "nitro";
export default defineHandler(async (event) => {
const body = await event.req.json();
return { received: body };
});
懂 Web API,就懂 H3 v2。
🗄 内置跨运行时核心能力(按需启用)
Nitro 提供轻量、跨运行时、完全可选的服务端能力,不用则不打包。
存储 Storage
20+ 驱动:FS、Redis、S3、Cloudflare KV、Vercel Blob 等,命名空间隔离,无缝切换。
import { useStorage } from "nitro/storage";
const storage = useStorage();
await storage.setItem("user:1", { name: "Nitro" });
缓存 Caching
路由级、函数级缓存,支持 stale-while-revalidate、TTL、自定义键。
import { defineCachedHandler } from "nitro/cache";
export default defineCachedHandler(() => {
return "缓存 1 小时";
}, { maxAge: 3600 });
数据库 Database
内置 SQL 层,开发默认 SQLite,线上无缝切换 PostgreSQL、MySQL 等。
import { useDatabase } from "nitro/database";
const db = useDatabase();
const users = await db.sql`SELECT * FROM users`;
🌍 随处部署:一份代码,全平台通吃
构建后统一输出 .output,自动适配:
- 运行时:Node.js、Bun、Deno
- 平台:Cloudflare Workers、Netlify、Vercel、AWS Lambda、Azure、Firebase、Deno Deploy 等
零配置自动识别目标平台,无感使用 ISR、SWR、边缘渲染。
🎨 SSR 服务端渲染
支持任意模板引擎,直接在服务端渲染 React、Vue、Svelte,渐进式升级到全栈同构。
🟢 Nuxt v5 核心引擎
Nitro v3 将是 Nuxt v5 的底层底座。 Nuxt v5 会内置 Nitro v3 + H3 v2,带来:
- Web 标准请求处理
- Rolldown 构建加速
- Vite Environment API 全面赋能
Nuxt 用户现在就可以提前熟悉 v3 API,为升级做准备。