Nuxt 3部署Vercel时如何仅将单个端点设为Edge Function?
Nuxt 3 + Vercel 混合部署:单个端点用Edge Function方案
Nuxt 3(配合Nitro)完全支持这种混合部署需求,你之前的问题是配置方式的细节没做对,以下是正确的实现步骤:
1. 给单个API路由单独配置Edge运行时
在你的项目server/api/目录下,找到需要设为Edge Function的路由文件(比如server/api/my-edge-api.ts),直接在文件中导出config对象,示例代码:
// server/api/my-edge-api.ts export default defineEventHandler(() => { return { type: "edge-function", message: "This endpoint runs on Vercel Edge Network" } }) // 关键配置:指定该路由使用Edge运行时 export const config = { runtime: "edge" }
如果是server/routes/下的服务器路由文件,同样可以用这个方式配置。
2. 全局保持Serverless默认配置
不要修改nuxt.config.ts中的nitro.preset,保持默认的vercel预设即可(该预设默认使用Serverless Function)。这样除了你单独配置的那个端点,其余所有API和服务器路由都会默认使用Serverless Function。
3. 验证部署结果
部署完成后,登录Vercel控制台,进入项目的「Functions」页面,就能看到目标端点被标记为Edge Function,其余端点则显示为Serverless Function。
注意事项
- 确保你的Nuxt和Nitro版本是最新稳定版,旧版本可能对单个路由的Edge运行时配置支持不完善。
- 该配置仅对Vercel平台生效,其他平台的Edge Function配置逻辑可能不同。
内容的提问来源于stack exchange,提问作者Ugur Kellecioglu
相关产品推荐
相关产品推荐

