【问题标题】:How to set .env variable for ReactJS如何为 ReactJS 设置 .env 变量
【发布时间】:2019-09-23 07:00:49
【问题描述】:

我有一个 ReactJS 应用程序,我想部署到 3 个生产环境:production1、production2 和 production3。

我的 env 文件为:.env(用于开发)、.env.production1(生产 1)、.env.production2(生产2)和 .env.production3(生产3)。

我运行系统税“npm start”,但它从文件 .env 中读取变量。

有没有办法用特定的 .env 文件运行“npm start”?

类似:

npm start (read from .env file)
npm start .env.production1 (read from .env.prod1 file)
npm start .env.production2 (read from .env.prod2 file)
npm start .env.production3 (read from .env.prod3 file)

我在这里阅读了参考资料:https://create-react-app.dev/docs/adding-custom-environment-variables,但这是用于“开发”、“测试”和“生产”的。我的案例是生产环境,但适用于 3 个环境。

这是我在将生产部署到客户端时遇到的问题。 如果有人对此投反对票,请告诉我为什么?

谢谢。

【问题讨论】:

  • 从上面的链接中,npm start 会选择 .env.development,npm build 会使用 .env.production 中的环境变量。我知道,但我的问题是生产 3 个环境。
  • 你看到作者如何添加build:staging。您可以针对不同的生产环境进行操作
  • 添加了 build:staging,但是如何使用呢?运行“npm build:staging”,不起作用

标签: reactjs


【解决方案1】:

你需要四个 .env 文件

.env
.env.production1
.env.production2
.env.production3

然后使用

读取表单 .env
let mode = process.env.NODE_ENV 

可能是 production1 或 production2 或 production3

然后使用模式获取其他配置数据,如

require('dotenv').config({ path: `/path/to/.env.${mode}` })

当您需要在配置之间切换时,只需修改 .env 如下所示

NODE_ENV = production1

NODE_ENV = production2 

NODE_ENV = production3

【讨论】:

  • process.env.NODE_ENV 是开发、测试或生产,但这是 3 个环境的生产:env.production1、env.production2 和 env.production3。你如何解决?我的问题是有像'npm start .env.production1'这样的语法吗?
  • 你现在可以试试我的回答
猜你喜欢
  • 2013-05-26
  • 1970-01-01
  • 2016-08-11
  • 2015-10-21
  • 1970-01-01
  • 2017-09-02
  • 1970-01-01
  • 2020-01-18
  • 2019-08-09
相关资源
最近更新 更多