繁体   English   中英

如何从 react.env 文件上的主机获取环境变量

[英]How to get environment variable from the host on react .env file

我正在构建一个具有许多配置文件的 ReactJs 应用程序。

该应用程序将在开发环境、质量保证环境和生产环境中运行。

鉴于此,我想在主机上设置一些环境变量,并能够在 .env 文件中获取它。

我需要做类似的事情:

.env 文件

REACT_APP_BASE_SERVICEX_URL=${ENV_ON_HOST_BASE_SERVICEX_URL}

REACT_APP_BASE_SERVICEY_URL=${ENV_ON_HOST_BASE_SERVICEY_URL}

这可能吗?

PS:应用程序将在 Kubernetes 中运行。

1- 从 npm 安装 env-cmd package

2- 在项目根目录中创建一个名为 .env.envName 的文件,sush as.env.staging, .env.production, ... 以区分每个环境中的变量。

3- 在 env 文件中,以键/值表示形式添加变量,前缀为 REACT_APP

4- 在您的package.json内部。 更改脚本构建。

"scripts": {
    "start": "env-cmd -f .env.staging react-scripts start",
    "build:staging": "env-cmd -f .env.staging react-scripts build",
    "build:production": "env-cmd -f .env.production react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

5- -f标志用于自定义 env 文件路径,因为默认值在项目根目录中,否则您应该指定实际路径

"start": "env-cmd -f ../../.env.staging react-scripts start",

您只是在问如何处理环境变量吗?

您可以将所需的任何变量放在 .env、.env.local、.env.development 或 .env.production 文件中,然后在部署时将它们复制到 .env 文件中。

习惯上将 .env 文件中的变量完全大写。 要在代码中使用它们,您将 process.env 放在它之前。

在.env 文件中:

DB_URL = http://fwohfjiowjfwefjpw

在反应:

const DBURL = process.env.DB_URL

使用dotenv-expand解决。

我刚刚运行了命令npm install dotenv-expand --save

安装后,我在项目根目录上创建了一个名为next.conf.js的文件

在这个文件中,我添加了以下内容:

在此处输入图像描述

在我的.env文件中:

在此处输入图像描述

现在我可以获取主机的环境变量了。

.env文件

REACT_APP_BASE_SERVICEX_URL=HOST_BASE_SERVICEX_URL

在您想使用 env 变量的地方,请按以下方式使用它 -

const URL = process.env.REACT_APP_BASE_SERVICEX_URL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM