Vercel 部署完全指南
目录
Vercel 概述
Vercel 是一个为前端开发者设计的云平台,提供零配置的部署体验。它与 Next.js, React, Vue, Astro 等多种现代框架深度集成,能够实现快速、可靠的全球部署。
核心功能
- Git 集成:连接 GitHub, GitLab, Bitbucket 仓库,实现自动部署。
- 全球 CDN:自动将您的站点分发到全球边缘网络,加速访问。
- Serverless Functions:轻松部署后端 API。
- 预览部署:为每个 Git 分支和 Pull Request 创建独立的预览环境。
- 免费额度:提供慷慨的个人和爱好者免费套餐。
准备工作
在开始部署之前,请确保您已经:
- 拥有一个 Vercel 账户:您可以直接使用 GitHub, GitLab 或 Bitbucket 账户注册。
- 拥有一个网站项目:确保您的项目在本地可以正常构建和运行。
- 将项目推送到 Git 仓库:将您的项目代码推送到 GitHub, GitLab 或 Bitbucket。
部署模式
Vercel 主要支持两种部署方式:
特性 | Git 集成 (推荐) | Vercel CLI |
---|---|---|
触发方式 | git push | 手动运行命令 |
自动化程度 | 高 | 低 |
预览部署 | 自动为 PR 创建 | 不支持 |
配置复杂度 | 简单,一次性设置 | 每次部署都需要手动操作 |
适用场景 | 持续集成和部署 (CI/CD) | 快速测试、一次性部署 |
通过 Git 集成自动部署
这是最推荐的方式,可以实现无缝的持续部署。
步骤 1:新建项目
- 登录 Vercel 仪表盘。
- 点击 “Add New…” -> “Project”。
- 选择 “Import Git Repository”,然后选择您存放项目的仓库。如果 Vercel 没有权限,需要授权访问。
步骤 2:配置项目
Vercel 通常会自动识别出您的项目所使用的框架,并配置好大部分设置。
- Framework Preset: Vercel 会尝试自动选择框架预设 (如 Next.js, Astro, Vue.js 等)。如果识别错误,您可以手动选择。
- Build and Output Settings:
- Build Command: 根据您的框架和包管理器填写构建命令,如
npm run build
。 - Output Directory: 填写框架构建后静态文件的输出目录,常见的有
dist
,build
,.output
等。 - Install Command:
npm install
或pnpm install
等,根据您的包管理器而定。
- Build Command: 根据您的框架和包管理器填写构建命令,如
确认配置无误后,点击 “Deploy”。Vercel 将开始第一次构建和部署。
自动更新
配置完成后,每当您向主分支 git push
新的提交时,Vercel 都会自动拉取代码、构建并部署到生产环境。对于 Pull Request,Vercel 会自动创建一个可供预览的部署。
通过 Vercel CLI 手动部署
如果您不想关联 Git 仓库,或者只是想进行一次快速部署,可以使用 Vercel CLI。
步骤 1:安装 Vercel CLI
在您的终端中运行以下命令:
npm install -g vercel
步骤 2:登录
在终端中运行 vercel login
并按照提示完成登录。
步骤 3:部署
- 在您的项目根目录下,运行
vercel
命令。 - CLI 会询问您一系列问题来配置项目:
Set up and deploy “path/to/your/project”? [Y/n]
-> 回答Y
Which scope do you want to deploy to?
-> 选择您的 Vercel 账户Link to existing project? [y/N]
-> 如果是第一次部署,回答N
What’s your project’s name?
-> 输入项目名称In which directory is your code located?
-> 保持默认 (./
)
- Vercel CLI 会自动检测项目类型并进行部署。
生产部署
要直接部署到生产环境,请使用 vercel --prod
命令。
环境变量配置
在项目开发中,我们经常需要使用环境变量来存储敏感信息(如 API 密钥)或配置信息。
在 Vercel 仪表盘中配置
- 进入您的项目仪表盘。
- 点击 “Settings” -> “Environment Variables”。
- 添加您的环境变量,可以选择将其暴露给生产、预览或开发环境。
在 vercel.json
中配置
您也可以在项目根目录创建一个 vercel.json
文件来管理配置,但不建议在此文件中存储敏感信息。
{ "env": { "MY_VARIABLE": "some_value" }}
自定义域名
Vercel 允许您轻松地为项目绑定自定义域名。
- 进入您的项目仪表盘。
- 点击 “Settings” -> “Domains”。
- 输入您想要添加的域名,并按照 Vercel 提供的指引在您的域名注册商处修改 DNS 记录(通常是添加 CNAME 或 A 记录)。
- Vercel 会自动为您的域名配置 SSL 证书。
最佳实践
1. 使用框架特定的适配器
为了更好地利用 Vercel 的 Serverless Functions 等功能(如果您的项目使用了 SSR),建议安装并配置框架官方提供的 Vercel 适配器,例如 @astrojs/vercel
或 Next.js 内置的集成。
2. 利用预览部署
在合并代码到主分支之前,充分利用 Pull Request 生成的预览部署链接进行测试,确保所有功能正常。
3. 缓存配置
对于不需要频繁更新的静态资源,可以在 vercel.json
中配置缓存策略,以提高性能和减少带宽消耗。
{ "headers": [ { "source": "/(.*).(jpg|jpeg|png|gif|webp|svg)$", "headers": [ { "key": "Cache-Control", "value": "public, max-age=31536000, immutable" } ] } ]}
4. 监控和日志
定期检查 Vercel 仪表盘中的 “Logs” 和 “Analytics” 选项,监控应用健康状况和用户访问数据。
常见问题
Q1: 部署失败,提示找不到输出目录?
检查清单:
- 确认您的框架构建配置中指定的输出目录 (
outDir
,buildDir
等)是什么。 - 在 Vercel 的项目配置中,“Output Directory” 是否正确设置为该目录。
- 检查
build
命令是否成功执行。查看部署日志中的构建步骤是否有错误。
Q2: 环境变量在客户端代码中无法访问?
可能原因:
- 许多前端框架(如 React, Vue, Astro)为了安全,默认只将特定前缀(如
VITE_
,PUBLIC_
)的环境变量暴露给客户端。请查阅您所使用框架的文档。 - 检查您在 Vercel 仪表盘中配置的环境变量是否应用到了正确的环境(生产/预览/开发)。
Q3: 如何回滚到之前的部署?
步骤:
- 进入项目仪表盘的 “Deployments” 标签页。
- 找到您想要回滚到的那个部署版本。
- 点击该部署右侧的 ”…” 菜单,选择 “Promote to Production”。
Q4: 自定义域名配置后无法访问?
可能原因:
- DNS 记录未生效,通常需要几分钟到几小时不等。
- DNS 配置错误,请仔细核对 Vercel 提供的记录值。
- SSL 证书生成失败,可以尝试在 Vercel 仪表盘中重新生成。
总结
Vercel 为现代网站项目提供了极其流畅和强大的部署体验。通过利用其 Git 集成、全球 CDN 和预览部署等功能,您可以轻松构建一个现代、高效的 Web 应用工作流。
记住关键要点:
- 优先使用 Git 集成进行自动化部署。
- 根据项目需求(SSR/SSG)选择是否使用框架特定的 Vercel 适配器。
- 善用环境变量管理敏感数据。
- 充分利用预览部署进行测试。
如有其他问题,请参考 Vercel 和您所使用框架的官方文档。