如何告诉 React 使用哪个 .env 文件?

Posted

技术标签:

【中文标题】如何告诉 React 使用哪个 .env 文件?【英文标题】:How to tell React which .env file to use? 【发布时间】:2022-01-22 03:29:47 【问题描述】:

我有一个使用以下命令运行的 React 应用程序:

npm run dev

这会启动应用程序并使用.env.local 文件。 我希望能够配置一个名为 .env.production 的文件,当我运行命令 npm run prod 时将使用该文件而不是 .env.local

这些是我当前的脚本:

  "scripts": 
    "dev": "react-scripts start",
    "start": "serve -s build",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  ,

我该怎么做?

【问题讨论】:

【参考方案1】:

安装npmjs.com/package/env-cmd

 "scripts": 
        "start": "react-scripts start",
        "start:local": "env-cmd -f ./.env.local react-scripts start",
        "start:Dev": "env-cmd -f ./.env.development react-scripts start",
        "start:QA": "env-cmd -f ./.env.test react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
      

【讨论】:

谢谢!我试过了,得到了这个'env-cmd' is not recognized as an internal or external command, npmjs.com/package/env-cmd【参考方案2】:

创建一个新的脚本密钥并使用 REACT_APP_ENV :

 "scripts": 
    "dev": "react-scripts start",
    "start": "serve -s build",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "prod" : "REACT_APP_ENV=prod npm run dev"
  ,

【讨论】:

以上是关于如何告诉 React 使用哪个 .env 文件?的主要内容,如果未能解决你的问题,请参考以下文章

vue、react项目设置多环境变量

我如何告诉 django-admin 使用哪个设置模块?

如何在带有 typescript 项目的 react js 中使用 .env 文件?

如何让 Apollo Client 告诉我错误发生在代码的哪个位置?

如何让 Cloud Foundry 从 React 应用程序中的特定 .env 文件中读取?

如何在赛普拉斯运行的浏览器中使用 process.env 变量