Next.js 部署到 Vercel 完全指南
为什么选择 Vercel 部署 Next.js?
Next.js 是由 Vercel 团队开发和维护的全栈 React 框架。虽然 Next.js 可以部署到任何支持 Node.js 的平台,但部署到 Vercel 可以获得零配置的体验,以及针对性能、可用性和全球扩展性的额外增强。
Vercel 被称为 Next.js 的"原生平台",这意味着它专门为 Next.js 优化,提供了最佳的开发和生产体验。
部署前的准备
1. 确保项目配置正确
在部署之前,确保你的 package.json 包含必要的脚本:
```json
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}
```
2. 本地测试构建
在部署前,建议先在本地测试生产构建:
```bash
npm run build
npm run start
```
这可以帮助你提前发现潜在的构建问题。
部署到 Vercel 的三种方式
方式一:通过 Vercel Dashboard(推荐新手)
这是最简单的部署方式,适合初学者:
-
访问 Vercel 官网
- 前往 vercel.com
- 使用 GitHub、GitLab 或 Bitbucket 账号登录
-
导入项目
- 点击 "New Project"
- 选择你的 Git 仓库
- Vercel 会自动检测到 Next.js 项目
-
配置项目
- 项目名称(可选,默认使用仓库名)
- 根目录(如果是 monorepo)
- 环境变量(如果需要)
-
部署
- 点击 "Deploy"
- 等待构建完成(通常 1-3 分钟)
- 获得一个
.vercel.app域名
方式二:使用 Vercel CLI
对于喜欢命令行的开发者:
```bash
1. 安装 Vercel CLI
npm install -g vercel
2. 在项目目录中运行
vercel
3. 按照提示操作
- 登录 Vercel 账号
- 选择或创建项目
- 确认配置
4. 部署到生产环境
vercel --prod
```
方式三:Git 集成(推荐团队协作)
这是最强大的方式,支持自动化部署:
-
连接 Git 仓库
- 在 Vercel Dashboard 导入项目
- 授权 Vercel 访问你的 Git 仓库
-
自动部署流程
- 每次 push 到主分支 → 自动部署到生产环境
- 每次创建 Pull Request → 自动创建预览部署
- 每次 push 到其他分支 → 创建预览部署
-
预览部署的优势
- 每个 PR 都有独立的预览 URL
- 团队成员可以在合并前测试
- 支持评论和反馈功能
Vercel 平台的核心优势
1. 增量静态再生成(ISR)
ISR 是 Next.js 的杀手级特性,在 Vercel 上表现最佳。
Vercel 上的 ISR 优势:
- 全球 CDN 分发,性能更好
- 生成的页面持久化到存储
- 零停机时间更新静态页面
- 全球内容更新仅需 300ms
2. 服务端渲染(SSR)
Vercel 通过 Vercel Functions 提供 SSR 支持:
优势:
- 不使用时自动缩减到零
- 根据流量自动扩展
- 零配置支持 Cache-Control 头
- 自动创建 Functions,无需手动配置
3. 图片优化
使用 next/image 组件,Vercel 会自动优化图片:
优势:
- 零配置自动优化
- 按需优化,保持构建速度快
- 自动使用现代图片格式(WebP、AVIF)
- 改善 Core Web Vitals 指标
- 无需额外服务
4. 字体优化
Next.js 的 next/font 在 Vercel 上开箱即用:
优势:
- 自动自托管字体文件
- 零布局偏移(CLS = 0)
- 构建时下载,无需运行时请求
- 支持所有 Google Fonts
5. 边缘中间件
Vercel 的边缘网络让中间件在全球范围内快速执行:
优势:
- 全球部署,低延迟
- 访问地理位置信息
- 在缓存之前执行
- 无需额外服务
6. 流式渲染
Vercel 完全支持 React 18 的流式渲染:
优势:
- 更快的首次内容绘制
- 渐进式页面加载
- 改善用户体验
环境变量配置
在 Vercel Dashboard 中配置
- 进入项目设置
- 选择 "Environment Variables"
- 添加变量:
NEXT_PUBLIC_API_URL- 客户端可访问DATABASE_URL- 仅服务端可访问API_SECRET_KEY- 敏感信息
不同环境的变量
Vercel 支持三种环境:
- Production - 生产环境
- Preview - 预览部署
- Development - 本地开发
你可以为每个环境设置不同的值。
自定义域名
添加自定义域名
- 在项目设置中选择 "Domains"
- 输入你的域名(如
example.com) - 按照提示配置 DNS
自动 HTTPS
Vercel 自动为所有域名提供:
- 免费 SSL 证书(Let's Encrypt)
- 自动续期
- HTTP/2 和 HTTP/3 支持
性能监控
Web Analytics
安装 Vercel Analytics 可以获得:
- 访问量统计
- 热门页面分析
- 访客地理位置
- 设备和浏览器分布
Speed Insights
监控 Core Web Vitals:
- LCP (Largest Contentful Paint)
- FID (First Input Delay)
- CLS (Cumulative Layout Shift)
- FCP (First Contentful Paint)
- TTFB (Time to First Byte)
常见问题与解决方案
1. 构建失败
解决方案:
- 检查本地
npm run build是否成功 - 查看 Vercel 构建日志
- 确保 Node.js 版本匹配
- 检查环境变量是否正确配置
2. 环境变量未生效
解决方案:
- 客户端变量必须以
NEXT_PUBLIC_开头 - 修改环境变量后需要重新部署
- 检查变量是否在正确的环境中配置
3. 图片加载慢
解决方案:
- 使用
next/image组件 - 设置正确的
width和height - 使用
priority属性优化首屏图片
4. API 路由超时
解决方案:
- Hobby 计划限制 10 秒
- Pro 计划可配置到 60 秒
- 考虑使用 Edge Functions(更快)
- 优化数据库查询
最佳实践
1. 使用 App Router
Next.js 13+ 的 App Router 提供更好的性能。
2. 优化图片和字体
- 始终使用
next/image - 使用
next/font加载字体 - 为首屏图片设置
priority - 使用适当的图片尺寸
3. 利用缓存策略
合理使用 cache 和 revalidate 选项。
4. 使用 Suspense 和流式渲染
提升用户体验和页面加载速度。
5. 配置 TypeScript
使用 TypeScript 提高代码质量。
部署后的优化
1. 监控性能
- 定期检查 Speed Insights
- 关注 Core Web Vitals 指标
- 优化得分低的页面
2. 分析流量
- 查看 Analytics 数据
- 了解用户行为
- 优化热门页面
3. 持续改进
- 根据监控数据优化
- 测试新功能的性能影响
- 保持 Next.js 和依赖更新
总结
将 Next.js 部署到 Vercel 是最简单、最高效的选择。你可以获得:
✅ 零配置部署 - 推送代码即可自动部署
✅ 全球 CDN - 内容分发到全球边缘节点
✅ 自动优化 - 图片、字体、代码自动优化
✅ 实时预览 - 每个 PR 都有独立预览 URL
✅ 性能监控 - 内置 Analytics 和 Speed Insights
✅ 自动扩展 - 根据流量自动调整资源
✅ 免费 HTTPS - 自动 SSL 证书和续期
无论你是个人开发者还是企业团队,Vercel 都能为你的 Next.js 应用提供最佳的部署体验。
开始部署:
- 访问 vercel.com
- 连接你的 Git 仓库
- 点击 Deploy
- 享受零配置的部署体验!
相关资源: