使用方法

从零开始部署:Vercel 的核心使用流程

Vercel 是一个云原生前端部署平台,主要面向 Jamstack 架构的项目。使用它之前,你需要在官网注册一个账号,建议直接绑定 GitHub、GitLab 或 Bitbucket 仓库。注册完成后,进入控制台,点击“Add New Project”按钮,选择你要部署的 Git 仓库。如果你没有现成仓库,也可以使用 Vercel 提供的示例模板,例如 Next.js、React、Vue 或静态页面项目。选择仓库后,Vercel 会自动检测项目框架并填充默认构建命令和输出目录。如果你使用自定义构建工具,可以在“Build and Output Settings”里手动修改。点击“Deploy”按钮,几秒钟后你的项目就会获得一个 .vercel.app 子域名,可以直接访问。

项目配置与环境变量管理

当你需要为不同环境(开发、预览、生产)设置不同的 API 密钥或数据库连接字符串时,环境变量非常关键。在项目详情页的顶部导航栏中,点击“Settings”,然后选择“Environment Variables”。你可以在此处添加键值对,并指定该变量应用于哪些环境。Vercel 支持按照分支自动匹配环境:主分支对应生产环境,Pull Request 对应预览环境,其他分支对应开发环境。注意,环境变量在构建时和运行时都可以被访问,但如果你在 next.config.jsvite.config.js 中使用它们,需要确保变量前缀符合框架要求。此外,你还可以将环境变量设置为“秘密”(Secret),这样在日志和界面中会被隐藏,提升安全性。

自定义域名与 SSL 证书

默认的 .vercel.app 域名适合测试,但正式项目通常需要绑定自己的域名。在项目“Settings”中找到“Domains”选项,输入你要绑定的域名(例如 example.comwww.example.com)。Vercel 会提示你添加一条 CNAME 记录指向 cname.vercel-dns.com(如果你使用 Vercel 的 DNS,也可以直接使用 Nameservers 托管整个域名)。配置完成后,Vercel 会自动申请并续期 Let's Encrypt 的 SSL 证书,整个过程不需要手动干预。你可以在同一个页面添加多个域名,Vercel 会为每一个域名生成独立的证书。需要注意的是,如果你想重定向 www 子域名到根域名或反之,可以在“Redirects”设置中创建 301 重定向规则。

Serverless Functions:在 Vercel 上运行后端逻辑

Vercel 支持在项目中创建无服务器函数(Serverless Functions),让你不需要管理服务器就能处理 API 请求。你需要在项目根目录下创建一个 api 文件夹(或者按照配置中的自定义路径),然后在其中放置 JavaScript、TypeScript、Python、Go 等语言的文件。每个文件对应一个 HTTP 端点。例如,创建一个 api/hello.js 文件,导出默认函数 export default function handler(req, res) { res.status(200).json({ message: 'Hello' }); },部署后就可以通过 /api/hello 路径访问。Vercel 会自动处理函数的冷启动和扩缩容,你无需关心底层基础设施。函数的环境变量会继承项目设置的全局环境变量,但你可以为函数单独设置“Secrets”。注意,免费套餐的函数执行时间限制为 60 秒,每次调用有 10 秒的超时限制,适合轻量级处理。如果函数需要依赖系统级库,可以使用 Vercel 的 Runtime 配置或者使用 Docker 镜像,不过那属于高级用法。

预览部署与团队协作

Vercel 的预览部署功能使得团队协作非常流畅。当你或团队成员对某个分支提交代码,或者创建 Pull Request 时,Vercel 会自动触发一次预览构建,并生成一个唯一的预览 URL。你可以在项目的“Deployments”页面查看所有历史部署,每个部署都有对应的状态日志、构建输出和访问链接。预览环境完全模拟生产环境,包括环境变量、域名等(预览环境会使用 .vercel.app 子域名)。团队成员可以在评论中直接引用预览链接进行代码审查或 UI 验证。要启用这个功能,你需要在 Git 平台(如 GitHub)上安装 Vercel 应用,并授予访问仓库的权限。另外,你还可以在 Vercel 控制台中设置“Protection Bypass”规则,允许特定 IP 或密码访问预览部署,防止未授权访问。

使用 Vercel CLI 进行本地调试与部署

除了网页控制台,Vercel 还提供了命令行工具 vercel。安装方式是通过 npm:npm i -g vercel。在项目根目录运行 vercel 命令,它会引导你登录并部署项目。CLI 最大的优势是可以在本地预览生产环境的行为:运行 vercel dev 会启动一个本地开发服务器,同时模拟 Vercel 的 Serverless Functions 和路由规则。你不需要在本地安装 Node.js 之外的额外组件。如果想跳过交互式配置,可以使用 vercel --prod 直接部署到生产环境。CLI 也支持从 vercel.json 配置文件读取项目设置,例如重写规则、Headers、Cron Jobs 等。你可以在项目根目录创建一个 vercel.json 文件来覆盖默认行为。例如,添加一个重定向规则:{ "redirects": [{ "source": "/old", "destination": "/new", "permanent": true }] }。注意,CLI 的本地模拟功能依赖于 Docker(用于某些运行时),但大多数情况下无需额外安装即可工作。

性能优化与边缘网络

Vercel 的部署默认会利用其全球边缘网络(Edge Network)。这意味着静态资源(图片、CSS、JavaScript 文件)会自动缓存到离用户最近的节点。你可以在项目“Settings”中的“Caching”页面调整缓存行为,或者通过 Cache-Control 头部自定义每个文件的缓存策略。对于动态内容,Vercel 支持 Edge Functions,也就是可以在边缘节点上运行的 JavaScript 代码,类似于 Cloudflare Workers。Edge Functions 可以在用户请求到达服务器之前修改响应、做 A/B 测试、进行地理定位重定向等。要使用 Edge Functions,你需要创建一个 middleware.js 文件放在项目根目录,或者使用 edge 目录下的函数。需要注意的是,Edge Functions 运行的运行时环境是 V8 Isolate,不能直接使用 Node.js 的内置模块,但可以通过 @vercel/edge 工具包来操作 Request 和 Response。此外,Vercel 还允许你通过“Analytics”面板查看每个页面的加载性能,包括 LCP、FID、CLS 等核心指标,帮助你进一步优化。

日志与监控

当你的项目遇到错误或性能下降时,Vercel 提供了内置的日志系统。在项目“Logs”页面,你可以实时查看构建日志、Serverless Functions 日志以及运行时日志。你可以按时间范围、日志级别(error、warn、info)和函数名称过滤。如果启用了“Log Drain”功能,你可以将日志转发到外部服务(如 Datadog、Logtail 等)。对于前端应用的错误追踪,Vercel 默认集成了 Next.js 的错误报告,但如果你使用其他框架,可以手动接入 Sentry 或其他第三方服务。Vercel 的“Status”页面可以查看平台整体的健康状态,而项目级别的“Metrics”提供请求数、带宽、错误率等图表。如果你是团队管理员,可以设置“Deployment Protection”规则,限制只有特定用户才能访问生产或预览部署,配合“Audit Logs”可以追溯谁在何时做了什么修改。

常见问题与排错技巧

很多初学者会遇到部署后页面空白或 404 错误。最常见的原因是构建输出目录设置错误:Vue 项目默认输出到 dist,但如果你没有在 Vercel 中指定,它会用 public 作为默认值。检查项目“Settings”中的“Build and Output Settings”是否与你的框架匹配。如果使用了客户端路由(如 React Router、Vue Router),你需要配置所有路径都重定向到 index.html,这可以通过在 vercel.json 中添加 rewrite 规则实现:{ "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] }。对于 Serverless Functions 调用超时,检查函数代码是否包含了同步阻塞操作,或是否依赖了大型依赖导致冷启动过慢。建议将函数代码保持轻量,使用异步操作,并将重型依赖移出函数或使用 Lambda Layers(Vercel 不支持此功能,可考虑将逻辑拆分为多个函数)。另外,如果你的项目使用了 Monorepo 结构,需要在 Vercel 中指定“Root Directory”为包含 package.json 的子文件夹,否则构建会失败。