2

我们使用 Heroku 管道部署了静态反应站点。

代码在 Stage 上自动推送和构建。为了推送到生产环境,我们想使用 Heroku 提升功能,所以我们确信我们使用的是我们在舞台上测试过的相同构建。

Stage 和 Production 有不同的 API,我们想通过 Heroku 的环境变量进行配置。

npm run build舞台const apiUrl = process.env.API_URL 上被替换为const apiUrl = "https://stage-api.example.com"

不幸的是(但当然),在升级到生产之后,apiUrl它仍然是 Stage 中的那个。

此外,发布阶段的 hack不起作用,因为不会部署发布阶段的文件系统更改。

有没有办法将 Heroku 的提升功能与静态构建和环境变量一起使用(我知道我们可以在每个阶段进行重建或加载基于域的配置)?

使用 Heroku 管道部署静态站点有什么好的做法吗?

4

1 回答 1

0

您需要在const apiUrl = process.env.API_URL运行时运行,而不是在构建时注入。我在heroku中使用promote函数并让应用程序获取该变量,如果process.env.NODE_ENV === 'production'

于 2019-08-12T17:11:17.157 回答