【问题标题】:Unable to get a system env variable inside react无法在反应中获取系统环境变量
【发布时间】:2020-06-23 02:17:53
【问题描述】:

我有一个 minikube 设置,其中我有一个用 SprintBoot APP 编写的 API,并有一个单独的用于 UI 的 REACT APP。

在 REACT 的部署 YAML 文件中,我设置了配置映射中可用的环境变量之一。但是,当我执行 process.env.VARIABLE 时,它给了我未定义的信息。我很确定我以错误的方式使用它,因此想知道是否有任何方法可以访问反应代码中的系统环境变量。

REACT 中的示例代码(不使用我的变量。而只是一个 PATH 变量):

onClickFunction() {
        console.log("Clicked!");
        alert('Button clicked! Env val = '+String(process.env.PATH));
    }

在警报中,我看到未定义。但是当我对 pod 进行 bash 操作时,我看到了:

$ kubectl exec -it react-js-567dd44ccc-2kdbz -nem bash
root@react-js-567dd44ccc-2kdbz:/app# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

root@react-js-567dd44ccc-2kdbz:/app#

configmap 为我提供了 Spring Boot 服务名称,以便我可以使用它从 UI 调用我的 API。我只是想在这里访问那个变量名。这是正确的方法吗?还是我应该以完全不同的方式构建它?

【问题讨论】:

    标签: reactjs kubernetes environment-variables configmap


    【解决方案1】:

    可能是,您需要 .env 文件的确切路径。

    试试这个...

    const result = require('dotenv').config({ path: '/full/custom/path/to/your/env/vars' })
    
    if (result.error) {
      throw result.error
    }
    

    【讨论】:

    • 这不是我要找的...环境变量正在由 kubernetes 中的 config-map 设置。我明确地将其设置在 .env 文件中以进行反应。运行反应的容器,我可以对变量进行回显,但只是那个 process.env 无法读取它。
    猜你喜欢
    • 2015-03-16
    • 2013-06-17
    • 1970-01-01
    • 2016-09-29
    • 2016-07-03
    • 1970-01-01
    • 2021-10-04
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多