Heroku 配置变量 - 它们是否通过 Vue.js 中的 process.env 可见?

Heroku Config Variables - Are they visible via process.env in Vue.js?

我正在将一个 vue.js 客户端和一个 node.js 服务器部署到 Heroku 并解决这些问题。

我在 Heroku 应用程序(使用管理界面)中定义了几个 oauth "config variables",我可以在命令行使用 heroku config 查看它们,但它们没有显示在应用程序中。

我正在 router.js 检查 process.envprocess.env 中只有 NODE_ENV="production" 和 BASE_URL="/"。

于是,我有了一个想法。嗯。在 vue.js 开发期间,你不能使用 dotenv,你必须在 .env 中定义你的常量为 "VUE_APP_XXX",因此:VUE_APP_MY_VAR=YOWASSUP,vue cli 将它们加载到 process.env.昨天,我将我所有的 heroku 配置变量定义为 "VUE_APP_...",然后今天更改了它们,这样我就可以在我的 .env 中使用 "VUE_APP_XXX",并为 Heroku 配置变量使用 "XXX" 格式。聪明吧!?

嗯,不。这就引出了我的问题。我刚刚测试过,所有 Heroku 定义的 vue.js 变量必须使用 "VUE_APP_..." 模式命名,以便解析并放置在 process.env.

我认为这不是预期的行为。我知道 VUE_APP_... 模式是相当新的。这是 vue.js 中的错误,还是我错过了备忘录?我不希望它在生产中的行为与在开发中的行为相同,我当然也不希望 vue.js 应用程序忽略 Heroku 定义的常量。我搜索了又搜索,但在任何地方都看不到任何相关信息。

此外,为了查看更新的 Heroku 配置变量,您必须重新编译 slug。来自 Heroku 的关于触发重建的配置变量的报告是不真实的:

来自 Heroku doco:

Whenever you set or remove a config var using any method, your app is restarted and a new release is created.

以上说法,就我有限的经验来看,似乎是不正确的。

我遇到了同样的问题。我正在搜索如何将 Heroku 配置变量作为环境变量,因为它们没有注入 process.env。 问题是我没有在配置变量 VUE_APP_ 上添加正确的前缀。在我更改配置 var 名称并重新部署应用程序后,它开始工作了。 如果您正在从 .env 文件中读取变量,您是否尝试过:

require('dotenv').config();