javascript - 如何在不重建 React 应用程序镜像的情况下更新环境变量

标签 javascript reactjs docker environment-variables

我正在构建一个 dockerized React 应用程序,需要为 API URL 定义一些环境变量。然而,React 在构建阶段注入(inject)了这些变量,所以每次环境变化时我都需要重建整个图像。这会减慢我的流程,因为我无法重复使用相同的应用程序图像进行认证和生产。

我已经搜索了一些模式,现在我正在使用 JS 配置文件动态注入(inject)环境,但它看起来不是很简单。有人知道处理这个问题的更好方法吗?

最佳答案

最近遇到了同样的问题,然后我发布了一些包:@import-meta-env/*到npm来解决问题。

此插件在特殊的 import.meta.env 对象上公开环境变量(深受 Vite 启发)。

在生产过程中,它将被静态地替换为占位符,而不是当前的环境变量。

因此我们可以在任何地方运行一个脚本来用系统中的环境变量填充文件。

您可以在 https://iendeavor.github.io/import-meta-env/ 查看更多信息.

我还创建了一个 Docker 示例:https://github.com/iendeavor/import-meta-env/tree/main/packages/examples/docker-starter-example .

希望对有需要的人有所帮助。

关于javascript - 如何在不重建 React 应用程序镜像的情况下更新环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71513731/

相关文章:

javascript - Microsoft Edge(和 IE)拖动事件 (JavaScript)

javascript - Gatsby 没有在生产中加载 useEffect 函数

javascript - React - prop 函数中的 prop 函数

reactjs - 带有 hooks 的 React 组件作为 npm 模块

docker - “Unable to locate package build-essential”而Docker基于Debian Jessie构建

javascript - 是否有一个全局浏览器对象我可以添加一个监听器来捕获所有抛出的错误?

javascript - 如何制作加载更多按钮

javascript - Ajax 不返回结果

docker - Jprofile可以连接到docker中运行的JVM

javascript - 我不小心删除了minio服务器上的图像。是否可以还原minio备份(使用和不使用docker)?