Remix Vercel部署 #

一、准备工作 #

1.1 安装Vercel CLI #

bash
npm install -g vercel

1.2 登录Vercel #

bash
vercel login

二、项目配置 #

2.1 创建vercel.json #

json
{
  "buildCommand": "npm run build",
  "devCommand": "npm run dev",
  "installCommand": "npm install",
  "framework": "remix",
  "regions": ["hkg1"],
  "functions": {
    "app/routes/**": {
      "memory": 1024,
      "maxDuration": 10
    }
  }
}

2.2 package.json配置 #

json
{
  "scripts": {
    "dev": "remix vite:dev",
    "build": "remix vite:build",
    "start": "remix-serve ./build/server/index.js"
  }
}

三、部署流程 #

3.1 首次部署 #

bash
vercel

按照提示选择:

  • 项目名称
  • 部署范围
  • 构建配置

3.2 生产部署 #

bash
vercel --prod

3.3 预览部署 #

每次推送到分支都会创建预览部署:

bash
vercel

四、环境变量 #

4.1 通过CLI设置 #

bash
vercel env add DATABASE_URL
vercel env add SESSION_SECRET

4.2 通过Dashboard设置 #

  1. 进入项目设置
  2. 选择 Environment Variables
  3. 添加变量和值
  4. 选择环境(Production/Preview/Development)

4.3 环境变量文件 #

创建 .env.example

text
DATABASE_URL=
SESSION_SECRET=
PUBLIC_API_URL=

五、域名配置 #

5.1 添加域名 #

bash
vercel domains add example.com

5.2 配置DNS #

在域名服务商配置:

类型 名称
A @ 76.76.21.21
CNAME www cname.vercel-dns.com

5.3 启用HTTPS #

Vercel 自动为域名配置 HTTPS 证书。

六、函数配置 #

6.1 内存配置 #

json
{
  "functions": {
    "app/routes/api/**": {
      "memory": 3008
    }
  }
}

6.2 超时配置 #

json
{
  "functions": {
    "app/routes/api/**": {
      "maxDuration": 60
    }
  }
}

七、缓存配置 #

7.1 静态资源缓存 #

json
{
  "headers": [
    {
      "source": "/assets/(.*)",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "public, max-age=31536000, immutable"
        }
      ]
    }
  ]
}

7.2 API缓存 #

在 loader 中设置:

tsx
export async function loader() {
  return json(data, {
    headers: {
      "Cache-Control": "public, s-maxage=60",
    },
  });
}

八、监控和日志 #

8.1 查看日志 #

bash
vercel logs

8.2 实时日志 #

bash
vercel logs --follow

8.3 Vercel Analytics #

启用分析:

bash
vercel analytics enable

九、部署最佳实践 #

9.1 分支部署 #

  • main 分支 → 生产环境
  • 其他分支 → 预览环境

9.2 部署钩子 #

vercel.json 中配置:

json
{
  "git": {
    "deploymentEnabled": {
      "main": true
    }
  }
}

9.3 回滚部署 #

bash
vercel rollback

十、常见问题 #

10.1 构建失败 #

检查:

  • Node.js 版本
  • 依赖安装
  • 构建命令

10.2 函数超时 #

增加超时时间或优化代码:

json
{
  "functions": {
    "app/routes/**": {
      "maxDuration": 30
    }
  }
}

10.3 内存不足 #

增加内存配置:

json
{
  "functions": {
    "app/routes/**": {
      "memory": 3008
    }
  }
}

十一、总结 #

本章我们学习了:

  1. 项目配置:vercel.json配置
  2. 部署流程:CLI和Git部署
  3. 环境变量:配置和管理
  4. 域名配置:添加和DNS设置
  5. 监控日志:查看和分析

核心要点:

  • 使用 vercel.json 配置项目
  • 正确设置环境变量
  • 配置自定义域名
  • 监控应用性能
最后更新:2026-03-28