【发布时间】:2020-09-30 12:24:19
【问题描述】:
我正在将带有 node.js 服务器的 vue.js 客户端部署到 Heroku 并解决问题。
我在 Heroku 应用程序(使用管理界面)中定义了几个 oauth“配置变量”,我可以在命令行中使用 heroku config 看到它们,但它们没有显示在应用程序中。
我在 router.js 中检查process.env。 process.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 中的错误,还是我错过了备忘录?我不希望它在生产中的行为与在 dev 中的行为相同,我当然也不希望 vue.js 应用程序忽略 Heroku 定义的常量。我已经搜索和搜索,但在任何地方都没有看到任何关于此的内容。
此外,为了查看更新的 Heroku 配置变量,您必须重新编译 slug。 Heroku 关于配置变量触发重建的报告是不真实的:
来自 Heroku doco:
每当您使用任何方法设置或删除配置变量时,您的应用都会重新启动并创建新版本。
就我有限的经验而言,上述陈述似乎是不正确的。
【问题讨论】:
标签: vue.js heroku config constants production