如何在Netlify中为不同分支的部署预览配置独立环境
Netlify 基于PR目标分支配置部署预览环境方案
方案1:直接修改netlify.toml配置(推荐,Netlify最新版本支持)
你当前的配置给所有部署预览统一指定了staging环境变量,只要新增目标分支匹配的专属context规则即可,Netlify会优先匹配更细分的context规则:
[context.production.environment] APP_ENV = "production" [context.staging.environment] APP_ENV = "staging" # 全局部署预览默认配置,适配目标为staging的PR [context.deploy-preview.environment] APP_ENV = "staging" # 新增:目标分支为production的部署预览专属配置 [context.'deploy-preview:target=production'.environment] APP_ENV = "production"
注意context名的引号是必须的,避免toml解析时把冒号后面的内容识别为新的层级。
方案2:通过构建脚本动态判断(兼容旧版Netlify)
如果你的Netlify版本不支持上述context语法,可以利用Netlify自动注入的内置环境变量BASE(该变量值为PR的目标分支名),在构建前动态修改环境变量:
- 在项目根目录新增
prebuild.sh脚本:
#!/bin/bash if [ "$BASE" == "production" ]; then export APP_ENV="production" fi
- 修改package.json的构建命令,先执行脚本再运行原有构建逻辑:
{ "scripts": { "prebuild": "chmod +x prebuild.sh && ./prebuild.sh", "build": "你的原有构建命令" } }
内容的提问来源于stack exchange,提问作者O2K
相关产品推荐
相关产品推荐

