Vercel
将 Nitro 应用部署到 Vercel。
Preset: vercel
可以通过零配置与此提供商集成。
入门
部署到 Vercel 具有以下功能:
等等。在 Vercel 文档 中了解更多。
使用 Git 部署
Vercel 以零配置支持 Nitro。立即将 Nitro 部署到 Vercel。
API 路由
Nitro 的 /api 目录与 Vercel 不兼容。相反,你应该使用:
routes/api/用于独立使用
Bun runtime
通过在 nitro.config 内使用 vercel.functions 键指定 runtime 来使用 Bun 代替 Node.js:
nitro.config.ts
export default defineNitroConfig({
vercel: {
functions: {
runtime: "bun1.x"
}
}
})
或者,如果你在 vercel.json 中指定了 bunVersion 属性,Nitro 也会自动检测 Bun:
vercel.json
{
"$schema": "https://openapi.vercel.sh/vercel.json",
"bunVersion": "1.x"
}
自定义构建输出配置
使用 nitro.config 内的 vercel.config 键提供额外的构建输出配置。它将与内置的自动生成配置合并。
按需增量静态重新生成 (ISR)
按需重新验证允许你随时清除 ISR 路由的缓存,而不需要后台重新验证所需的时间间隔。
要按需重新验证页面:
创建一个环境变量,用于存储重新验证密钥- 你可以使用命令
openssl rand -base64 32 或生成密钥 来生成随机值。
openssl rand -base64 32 或生成密钥 来生成随机值。更新你的配置:nitro.config.tsimport { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
vercel: {
config: {
bypassToken: process.env.VERCEL_BYPASS_TOKEN
}
}
})
nitro.config.ts
import { defineNitroConfig } from "nitro/config";
export default defineNitroConfig({
vercel: {
config: {
bypassToken: process.env.VERCEL_BYPASS_TOKEN
}
}
})
要触发"按需增量静态重新生成 (ISR)"并重新验证预渲染函数的路径,向该路径发出带有 x-prerender-revalidate: bypassToken 头的 GET 或 HEAD 请求。当使用此头访问该预渲染函数端点时,缓存将被重新验证。对该函数的下一个请求应返回新鲜响应。
通过路由规则进行细粒度 ISR 配置
默认情况下,缓存会忽略查询参数。
向 isr 路由规则传递选项对象来配置缓存行为。
expiration:缓存资产将被调用无服务器函数重新生成之前的过期时间(以秒为单位)。将值设置为false(或isr: true路由规则)意味着它永远不会过期。group:资产的组号。具有相同组号的预渲染资产将同时重新验证。allowQuery:将独立缓存的查询字符串参数名称列表。- 如果是空数组,查询值不考虑用于缓存。
- 如果是
undefined,每个唯一的查询值都独立缓存。 - 对于通配符
/**路由规则,始终添加url
passQuery:当为true时,查询字符串将出现在传递给调用函数的request参数中。allowQuery过滤器仍然适用。
export default defineNitroConfig({
routeRules: {
"/products/**": {
isr: {
allowQuery: ["q"],
passQuery: true,
},
},
},
});