You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Vercel托管MERN Stack项目:同项目或同仓库分项目实现方案?

关于MERN项目在Vercel托管的两种可行方案

方案一:通过vercel.json在同一个Vercel项目中同时托管前后端

完全可行,核心是通过vercel.json配置路由规则,区分前端静态资源请求和后端API请求,分别指向对应目录。

具体配置步骤:

  1. 在项目根目录创建vercel.json文件
  2. 写入适配你项目结构的配置示例(可根据实际目录调整):
{
  "buildCommand": "cd client && npm install && npm run build && cd ../server && npm install",
  "outputDirectory": "client/build",
  "routes": [
    {
      "src": "/api/(.*)",
      "dest": "/server/api/$1"
    },
    {
      "src": "/(.*)",
      "dest": "/client/build/$1"
    }
  ],
  "functions": {
    "server/api/*.js": {
      "runtime": "@vercel/node@2.x"
    }
  }
}
  1. 关键注意点:
    • 确保前端项目的build命令能生成静态文件到client/build目录
    • 后端API文件需符合Vercel Node函数规范,比如导出handler处理函数
    • 路由规则要匹配你的实际API路径前缀

方案二:同一个GitHub仓库下创建两个独立Vercel项目分别托管前后端

这也是可行方案,适合前后端依赖完全分离、需要独立部署迭代的场景。

具体操作步骤:

  1. 登录Vercel控制台,点击「New Project」
  2. 选择你的目标GitHub仓库,进入项目配置页
  3. 配置前端项目:
    • 在「Root Directory」输入框填写client
    • 设置Build Command为npm run build
    • Output Directory根据前端框架填写(比如React默认是build)
    • 完成部署,获取前端专属Vercel域名
  4. 再次点击「New Project」,重新选择同一个GitHub仓库
  5. 配置后端项目:
    • 在「Root Directory」输入框填写server
    • Vercel会自动识别Node.js服务,确保后端入口文件导出正确的HTTP服务
    • 完成部署,获取后端专属Vercel域名
  6. 最后修改前端代码中的API请求地址,替换为后端的Vercel域名即可

内容的提问来源于stack exchange,提问作者Sanchit Bajaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:01:00