Heroku配置变量 - 它们在Vue.js中通过process.env可见吗?

问题描述 投票:0回答:1

我在Heroku部署了一个带有node.js服务器的vue.js客户端,并在处理这些问题。

我在Heroku应用中定义了几个oauth "配置变量"(使用管理界面),我可以通过以下方式看到这些变量 heroku config 命令行中,但它们没有显示在应用程序中。

我正在检查 process.env 在路由器.js中。中的 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 vars必须用 "VUE_APP_... "这样的模式命名,才能被解析并放置在以下位置 process.env.

我不认为这是预期的行为。我知道VUE_APP_...模式是相当新的。这是vue.js的一个bug,还是我错过了备忘录?我不希望它在生产中的行为和在开发中的行为一样,我当然也不希望vue.js应用会忽略Heroku定义的常量。我找了又找,没有看到任何关于这方面的内容。

另外,为了看到更新的Heroku配置变量,你必须重新编译slug。Heroku关于配置变量触发重建的报告是不真实的。

从Heroku的报告中可以看到 文档:

每当你使用任何方法设置或删除一个config var时,你的应用程序都会被重新启动并创建一个新的版本。

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

vue.js heroku config constants production
1个回答
0
投票

我也有同样的问题,我在搜索如何让Heroku应用(使用管理界面)定义几个oauth "配置变量",我... 我在搜索如何让Heroku配置变量作为环境变量,因为它们没有注入process.env.问题是我没有在配置变量上添加正确的前缀。VUE_APP_. 在我改变了config var名称并重新部署应用程序后,它工作了。如果你是从一个.env文件中读取变量,你是否尝试过。

require('dotenv').config();
© www.soinside.com 2019 - 2024. All rights reserved.