Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
deploy-to-vercel【部署与运维】将 Next.js 应用程序部署到 Vercel。涵盖项目关联、环境变量、预览部署、 自定义域名及生产部署配置。适用于首次部署 Next.js 应用、为 Pull Request 设置预览部署、配置自定义域名,或管理 Vercel 生产环境变量。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
将 Next.js 应用程序以生产配置部署到 Vercel。
npm run build
预期结果: 构建成功,无任何错误。
失败处理: 部署前修复构建错误。常见问题:TypeScript 错误、缺少依赖项、无效导入。
npm install -g vercel
预期结果: vercel 命令全局可用,vercel --version 打印已安装版本。
失败处理: 如果出现权限错误,使用 sudo npm install -g vercel 或配置 npm 使用用户本地前缀。使用 node --version 验证 Node.js 已安装。
# Login to Vercel
vercel login
# Deploy (first time: creates project)
vercel
# Follow prompts:
# - Set up and deploy? Y
# - Which scope? (select your account)
# - Link to existing project? N (for new projects)
# - Project name: my-app
# - Directory: ./
# - Override settings? N
预期结果: 提供预览 URL(如 https://my-app-xxx.vercel.app)。
失败处理: 如果 vercel login 失败,检查网络连接并尝试基于浏览器的认证。如果部署失败,查看构建输出中的错误——Vercel 使用干净环境,所有依赖项必须在 package.json 中声明。
# Add environment variables
vercel env add DATABASE_URL production
vercel env add API_KEY production preview
# List environment variables
vercel env ls
或通过 Vercel 控制台配置:项目设置 > 环境变量。
预期结果: vercel env ls 显示所有必需的环境变量,已针对正确的环境(生产、预览、开发)配置。
失败处理: 如果变量在运行时未出现,验证目标环境是否匹配(生产 vs 预览)。添加变量后重新部署——现有部署不会自动获取新变量。
vercel --prod
预期结果: 生产 URL 可用(如 https://my-app.vercel.app)。
失败处理: 使用 vercel logs 或在 Vercel 控制台中检查部署日志。常见问题包括生产环境缺少环境变量,以及构建命令与本地设置不同。
预期结果: Vercel 控制台显示已连接 GitHub 仓库,后续推送到 main 自动触发生产部署。
失败处理: 如果仓库未出现在导入列表中,检查 Vercel GitHub 应用是否有权访问该仓库。访问 GitHub 设置 > 应用程序 > Vercel 并授予访问权限。
vercel domains add my-domain.com
或通过控制台:项目设置 > 域名。
按照 Vercel 的指示更新 DNS 记录(通常是 CNAME 或 A 记录)。
预期结果: vercel domains ls 显示自定义域名已配置,DNS 传播后(最长 48 小时),域名解析到 Vercel 部署。
失败处理: 如果域名显示"配置无效",验证 DNS 记录与 Vercel 的指示完全匹配。使用 dig my-domain.com 或在线 DNS 检查工具确认传播。
在项目根目录创建 vercel.json 进行高级设置:
{
"framework": "nextjs",
"regions": ["iad1"],
"headers": [
{
"source": "/api/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "no-store" }
]
}
]
}
预期结果: vercel.json 保存在项目根目录,下次部署时采用该配置(在 Vercel 控制台构建日志中可见)。
失败处理: 如果配置被忽略,使用 jq . vercel.json 验证 JSON 是否合法。检查 Vercel 文档中您的框架版本,某些设置可能已移至 next.config.ts。
npm run build 在本地成功package.json 中,而非全局安装。.env.local 中。不同环境(生产、预览、开发)有独立的变量集。package.json 的 engines 字段中设置 Node.js 版本。.vercelignore 排除不必要的文件。scaffold-nextjs-app — 创建待部署的应用setup-tailwind-typescript — 部署前配置样式configure-git-repository — 自动部署集成的 Git 设置