名称: Vercel CLI 管理 描述: 使用 Vercel CLI 部署、管理环境变量、查看日志和配置定时任务。适用于部署到 Vercel、管理环境变量(添加/更新/移除)、查看运行时/构建日志或在 vercel.json 中配置计划任务。
Vercel CLI 管理
掌握 Vercel CLI 以进行部署、环境变量管理、日志查看和定时任务配置。
快速参考
部署
# 部署当前目录(预览)
vercel
# 部署到生产环境
vercel deploy --prod
# 或
vercel --prod
# 强制重新部署(即使未更改)
vercel deploy --force
# 使用内联环境变量部署
vercel deploy --env NODE_ENV=production -e API_KEY=secret
# 先本地构建,然后部署
vercel build
vercel deploy --prebuilt
# 重建 + 重新部署先前的部署
vercel redeploy <deployment-url-or-id>
# 将预览部署提升到生产环境
vercel promote <deployment-url-or-id>
# 回滚到先前的部署
vercel rollback <deployment-url-or-id>
# 列出所有部署
vercel list
# 获取部署信息
vercel inspect <deployment-url-or-id>
# 删除部署
vercel remove <deployment-id>
环境变量
列出
# 列出所有环境变量(默认为开发环境)
vercel env list
# 列出特定环境
vercel env list production
vercel env list preview
vercel env list development
# 列出特定 Git 分支
vercel env list production main
添加
# 添加到所有环境(交互式)
vercel env add MY_VAR
# 在提示时输入值
# 添加到特定环境
vercel env add API_TOKEN production
# 添加敏感变量(在仪表板中屏蔽)
vercel env add SECRET_KEY --sensitive
# 覆盖现有变量
vercel env add MY_VAR --force
# 为特定 Git 分支添加
vercel env add DB_URL production main
更新
# 在所有环境中更新(交互式)
vercel env update MY_VAR
# 更新特定环境
vercel env update API_TOKEN production
# 从 stdin 更新
cat ~/.npmrc | vercel env update NPM_RC production
vercel env update CONFIG production < config.json
# 标记为敏感
vercel env update SECRET_KEY --sensitive
移除
# 从所有环境中移除
vercel env remove API_TOKEN
# 从特定环境中移除
vercel env remove SECRET_KEY production
# 跳过确认
vercel env remove API_TOKEN -y
# 移除特定分支的变量
vercel env remove DB_URL production main
拉取到本地
# 拉取开发变量到 .env.local
vercel env pull
# 拉取到自定义文件
vercel env pull .env.development.local
# 拉取特定环境
vercel env pull .env.production --environment production
日志
运行时日志(实时应用程序日志)
# 流式传输运行时日志 5 分钟
vercel logs <deployment-url-or-id>
# 使用 Jupiter 部署的示例
vercel logs jupiter-qhb0ke91n-captaincrouton89s-projects.vercel.app
# 以 JSON 格式输出(用于管道到 jq)
vercel logs <deployment-url-or-id> --json
# 使用 jq 过滤
vercel logs <deployment-url-or-id> --json | jq 'select(.level == "error")'
构建日志(编译 + 部署)
# 显示部署的构建日志
vercel inspect <deployment-url-or-id> --logs
# 等待构建完成并显示日志
vercel inspect <deployment-url-or-id> --logs --wait
# 在 X 秒后超时
vercel inspect <deployment-url-or-id> --logs --timeout 90s
定时任务
定时任务仅在 vercel.json 中配置——没有 CLI 命令管理。
配置(vercel.json)
{
"crons": [
{
"path": "/api/cron/email-sync",
"schedule": "*/5 * * * *"
},
{
"path": "/api/cron/weekly-digest",
"schedule": "0 0 * * 1"
},
{
"path": "/api/cron/cleanup",
"schedule": "0 2 * * *"
}
]
}
定时表达式格式(标准 cron 语法,UTC 时区)
分钟 (0-59) 小时 (0-23) 月份中的日 (1-31) 月 (1-12) 星期中的日 (0-6)
示例
*/5 * * * * 每 5 分钟
0 */4 * * * 每 4 小时
0 0 * * * 每天 UTC 午夜
0 9 * * 1 每周一 UTC 9 点
0 0 1 * * 每月第一天
0 0 * * 0 每周日
重要限制
- 不能同时使用月份中的日和星期中的日;其中一个必须为
* - 不支持文本替代(MON、SUN、JAN、DEC 不支持)
- 所有时间以 UTC 为准
- 定时任务向您的部署发出 GET 请求,用户代理为
vercel-cron/1.0
验证定时任务
- 修改
vercel.json并重新部署:vercel deploy --prod - 在仪表板中查看状态:项目 → 设置 → 定时任务
- 监控日志:
vercel logs <deployment-url>
常见工作流
部署带环境变量
交互式
# 部署并交互式设置变量
vercel env add NODE_ENV
vercel env add LOG_LEVEL
vercel deploy --prod
命令行
# 单次部署带环境变量
vercel deploy --prod -e NODE_ENV=production -e LOG_LEVEL=debug
修复失败部署
# 检查问题
vercel inspect <deployment-id> --logs
# 修复代码或配置,然后重新部署
# 选项 1:构建并部署更改的代码
vercel deploy --prod
# 选项 2:使用修复重建先前部署
vercel redeploy <deployment-id> --target production
# 选项 3:回滚到上次已知良好状态
vercel rollback <deployment-id>
监控实时应用程序
# 查看最近运行时日志(5 分钟窗口,实时流)
vercel logs my-app-xyz.vercel.app
# 仅过滤错误
vercel logs my-app-xyz.vercel.app --json | jq 'select(.level == "error")'
# 跟踪特定定时任务执行
vercel logs my-app-xyz.vercel.app --json | jq 'select(.path == "/api/cron/email-sync")'
环境变量工作流
# 为生产环境添加秘密
vercel env add DATABASE_URL production
vercel env add API_KEY production --sensitive
# 拉取开发变量到本地
vercel env pull .env.local
# 更新后轮换
vercel env update API_KEY production
# 移除已弃用变量
vercel env remove OLD_TOKEN -y
调试定时任务
# 1. 验证 vercel.json 中的配置
cat vercel.json
# 2. 部署更改
vercel deploy --prod
# 3. 监控日志中的执行
vercel logs <deployment-url> --json | jq 'select(.path == "/api/cron/your-route")'
# 4. 在仪表板中检查定时任务日志
# 项目 → 设置 → 定时任务 → 查看日志按钮
重要注意事项
部署目标
- 生产环境:分配给项目域,无实时预览
- 预览环境:自动生成的 URL,提升前实时预览
- 开发环境:使用
vercel dev本地测试
环境范围
production- 生产环境preview- 预览/暂存部署development- 本地.env.local文件- Git 分支 - 特定分支覆盖
API 速率限制
- 检查仪表板以获取每团队限制
- 重新部署和提升可能有单独限制
定时任务的用户代理检测
- Vercel 定时请求包括:
User-Agent: vercel-cron/1.0 - 用于身份验证:
if (req.headers['user-agent'] === 'vercel-cron/1.0')
来自真实项目的示例
Jupiter 邮件项目
{
"crons": [
{
"path": "/api/cron/email-sync",
"schedule": "*/5 * * * *"
},
{
"path": "/api/cron/weekly-digest",
"schedule": "0 0 * * 1"
},
{
"path": "/api/cron/delete-old-emails",
"schedule": "0 0 * * *"
}
]
}
部署使用:vercel deploy --prod