vue.js - 应用程序由 Amplify 提供服务时未定义的应用程序环境变量
问题描述
我有一个由 AWS Amplify 托管的 Vue.js 应用程序。
在 Vue 中,可以使用 .env 在应用程序范围内设置环境变量。文件。我目前将此类文件用于开发和生产模式,包含不同的值。在本地构建和服务我的应用程序时,上述工作按预期工作。但是,一旦 Amplify 部署了我的应用程序(在我的例子中,我使用 Amplify 的 CD 功能),这些变量就没有定义。
我知道我可以在 Amplify 中定义相同的环境变量,但这意味着我需要在两个地方管理这些值,因为在开发时不会重新部署。所以这似乎很容易出错(例如,当我需要进行更改时,我需要记住在应用程序端和放大控制台上更新变量)。
我想知道这种行为是否是预期的,或者我的设置中是否缺少某些东西。
谢谢!
解决方案
我在我的 React 应用程序中也遇到了同样的问题。
问题是,您需要.env
在您的应用程序中有一个包含所有环境变量的文件。
为什么?— 其背后的原因是,它会生成静态 HTML、CSS 和 JS 文件。process
这些文件在运行时无法访问。
在 Amplify 中添加所有环境变量后,您必须build
在App build specification
.
你可以参考这个官方文档来了解如何实现它。
如果你不太关心你的环境变量,你可以使用这个 hack: printenv
。这会将您的操作系统和应用程序的所有环境变量存储在.env
文件中。
我的配置看起来像这样:
build:
commands:
- 'printenv >> .env'
- 'npm run build'
推荐阅读
- python - 模型中不使用输入,仅在保存模型时丢失引发错误!(tf.2.0-beta1)
- sql - 用国家列表替换 SQL 插入中的国家以创建多个插入
- python - 如何自定义 django 组模型
- google-apps-script - 检查是否有人使用 Google Apps 脚本在 Gmail 中回复我的电子邮件
- python - 如何使用 Python 在 Selenium 中刮取值?
- arrays - 如何将多对象数组中的每个 PC 名称与单个对象数组进行比较
- javascript - 带有 AJAX 的引导表“正在加载,请稍候...”
- python - 使用 python 并行运行一些任务,并按顺序运行其他任务
- scala - spark kubernetes集群模式下无法读取本地文件
- php - 从网站上抓取数据并以纯文本形式获取其 html