无需转为NextJS,能否将edge-runtime API部署到Vercel?
无需迁移到Next.js即可部署Edge Runtime API到Vercel的方法
当然可以,你完全不用转Next.js,直接用Vercel的Edge Functions就能部署你的现有Edge Runtime代码,具体步骤如下:
1. 调整代码结构
在项目根目录创建api文件夹,把你的路由处理代码放到这个文件夹下的文件里(比如命名为router.js)。代码格式需要改成Vercel Edge Functions支持的导出方式——导出一个处理Request的异步函数,同时指定运行时为edge:
// 指定使用Edge Runtime export const config = { runtime: 'edge', }; // 你的路由处理逻辑,和本地fetch事件的逻辑基本一致 export default async function handleRequest(request) { const url = new URL(request.url); switch (url.pathname) { case '/api/user': return new Response(JSON.stringify({ name: 'Edge Runtime' }), { headers: { 'Content-Type': 'application/json' }, status: 200 }); case '/api/status': return new Response('OK', { status: 200 }); default: return new Response('404 Not Found', { status: 404 }); } }
你的本地代码里基于fetch事件的逻辑,只需要把事件对象里的request参数抽出来,直接放到这个处理函数里就能复用,两者的API标准完全兼容。
2. 部署到Vercel
确保你已经安装了Vercel CLI,然后执行以下步骤:
- 登录Vercel账号:
vercel login - 在项目根目录执行部署命令:
vercel deploy
按照CLI提示完成部署即可,部署后的API访问路径就是https://<你的项目域名>/api/router(或者你在api文件夹下的对应文件名路径)。
额外说明
- 如果你需要自定义路由规则,可以在项目根目录创建
vercel.json文件配置路由重写,比如把根路径指向你的Edge Function:
{ "rewrites": [ { "source": "/(.*)", "destination": "/api/router" } ] }
- Vercel的Edge Runtime和你本地用的edge-runtime基于相同的Web API规范,所以你本地测试通过的代码几乎不需要修改就能直接部署。
内容的提问来源于stack exchange,提问作者Thiti-Dev
相关产品推荐
相关产品推荐

