vue.js - Heroku 配置变量 - 它们是否通过 Vue.js 中的 process.env 可见?
问题描述
我正在将带有 node.js 服务器的 vue.js 客户端部署到 Heroku 并解决这些问题。
我在 Heroku 应用程序(使用管理界面)中定义了几个 oauth“配置变量”,我可以heroku config
在命令行中看到它们,但它们没有显示在应用程序中。
我正在检查process.env
router.js。里面只有process.env
NODE_ENV="production" 和 BASE_URL="/" 。
于是,我有了一个想法。嗯。在开发的vue.js中,你不能使用dotenv,你必须在.env中定义你的常量为“VUE_APP_XXX”,因此:VUE_APP_MY_VAR=YOWASSUP,vue cli会将它们加载到.env中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:
每当您使用任何方法设置或删除配置变量时,您的应用程序都会重新启动并创建一个新版本。
就我有限的经验而言,上述说法似乎是不正确的。
解决方案
我遇到过同样的问题。我正在搜索如何将 Heroku 配置变量作为环境变量,因为它们没有被注入到 process.env 中。问题是我没有在 config vars 上添加正确的前缀VUE_APP_
。在我更改了配置变量名称并重新部署它工作的应用程序之后。如果您正在从 .env 文件中读取变量,您是否尝试过:
require('dotenv').config();
推荐阅读
- typescript - TypeScript 中泛型的深层部分
- node.js - Node.js:如何将元数据添加到音频文件?
- javascript - jQuery setInterval() 每 5 秒自动刷新 div 元素
- python - 如何选择链表中的第一个节点?
- c# - 如何通过代码设置另存为对话框的目录?
- javascript - 协调加载和重新加载 Script.js
- github-pages - 如何更改 github 页面主题中使用的字体?
- c# - Update and display constantly changing variable value in threads using winforms
- firebase - Why won't my function open up the Facebook Login page for React Native (Expo)?
- css - Apply general sibling (~) until it reaches an element and then no longer match