如何为ReactJS设置.env变量

如何为ReactJS设置.env变量,reactjs,Reactjs,我有一个ReactJS应用程序,我想部署到3个生产环境:production1、production2和production3 我的环境文件有:.env(用于开发)、.env.production1(生产1)、.env.production2(生产2)和.env.production3(生产3) 我运行systax“npm start”,但它从文件.env读取变量 是否有任何方法可以使用特定的.env文件运行“npm start” 比如: npm start (read from .env fi

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

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

我运行systax“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)
我在这里读到了一篇参考文献:但这是关于“开发”、“测试”和“生产”的。我的案例是生产,但适用于3种环境

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


谢谢。

您需要四个.env文件

.env
.env.production1
.env.production2
.env.production3
然后使用

let mode = process.env.NODE_ENV 
哪个可以是production1、production2或production3

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

require('dotenv').config({ path: `/path/to/.env.${mode}` })
当您需要在配置之间切换时,只需修改.env,如下所示

NODE_ENV = production1


我认为这会对您有所帮助。从上面的链接中,npm start将选择.env.development,npm build将在.env.production中使用环境变量。我知道,但我的问题是针对3种环境的生产。您看过作者如何添加
build:staging
。您可以为不同的生产环境添加build:staging,但如何使用它?运行“npm build:staging”不会使workprocess.env.NODE\u env为开发、测试或生产,但这是3种环境的产品:env.production1、env.production2和env.production3。你是怎么处理的?我的问题是有任何类似“npm start.env.production1”的语法吗?你现在可以试试我的答案
NODE_ENV = production2 
NODE_ENV = production3