如何阻止Vercel中非生产分支的预览构建?
阻止Vercel中非生产分支的预览构建(Monorepo场景)
方法1:利用Ignored Build Step功能
- 打开Vercel项目的「Settings」→「Git」页面
- 在「Ignored Build Step」输入框中填入分支判断脚本:
逻辑说明:if [ "$VERCEL_GIT_COMMIT_REF" != "main" ]; then exit 0; else exit 1; fiVERCEL_GIT_COMMIT_REF是Vercel内置环境变量,对应当前推送的分支名。如果不是指定的生产分支(比如这里的main),返回0触发构建跳过;否则返回1执行正常构建。
方法2:通过vercel.json配置文件控制
在项目根目录(或Monorepo中子应用的根目录)创建/修改vercel.json,添加构建忽略规则:
{ "build": { "ignoreCommand": "if [ \"$VERCEL_GIT_COMMIT_REF\" != \"main\" ]; then exit 0; fi" } }
如果是多应用Monorepo,可给每个子应用单独配置该文件,实现更细粒度的控制。
方法3:使用分支保护设置
- 进入Vercel项目的「Settings」→「Git」→「Branch Protection」
- 在「Preview Deployments」区域选择「Only specified branches」,然后添加你的生产分支(如
main、master) - 配置完成后,只有指定分支推送时才会触发预览构建,其余分支直接跳过。
注意事项
如果你的Monorepo使用Turbo、Nx等构建工具,可结合工具本身的增量构建逻辑,但上述方法依然能直接阻止非生产分支的全量/预览构建触发。
内容的提问来源于stack exchange,提问作者Hyeongrok
相关产品推荐
相关产品推荐

