我最近向 Heroku 部署了一个 React/Express 应用程序,但是我遇到了作为构建应用程序和 Heroku 部署管道一部分的环境变量的问题 - 简而言之,应用程序staging
发布的环境变量的值是在升级到时被结转production
-我可以正确设置环境变量的唯一方法是将应用程序直接推送到production
,这实际上首先违背了部署管道的目的。以下是该场景的摘要:
有问题的环境变量是API_URL
,它的引用webpack.config.js
如下:
plugins: [
new webpack.DefinePlugin({
'API_URL': JSON.stringify(process.env.API_URL || 'http://localhost:4000/api/v1')
})
]
API 本身就是另一个 Heroku 应用程序,staging
并且production
发布了,因此API_URL
环境变量的值在我的 React 应用程序 Heroku 配置中分别设置为https://staging-api-12345.herokuapp.com/api/v1
和https://production-api-12345.herokuapp.com/api/v1
。
staging
当我将我的React应用程序推production
到https://staging-api-12345.herokuapp.com/api/v1
. 好吧,我明白为什么会这样 - 应用程序是在被推送到时构建的staging
......所以我尝试在提升到之后重建应用程序production
,但这没有用,它仍然使用staging
环境变量。
使用 Heroku 部署管道时,有没有办法强制应用程序 slug 重新构建,以便捕获不同的环境变量?