Create-React-App .env文件目录位置非根

问题描述

使用create-react-app (CRA)创建新的Web应用程序后,我需要包括一些环境文件以配置各种端点。注意,CRA附带了很酷的dotenv软件包,所有软件包都可以使用。那里只有一个问题-我想让dotenv从我的./environments目录而不是根目录中读取这些文件。有什么方法可以将目录{em> 中的.env.env.local.env.test文件从根目录中加载出来?

引人注目的我可以通过这样简单地导入来在我的快速后端server.js中实现此目标>

require('dotenv').config({ path: `./environments/` })

我可以在React中使用客户端代码吗?如果是这样,我应该在哪里进口呢?似乎不适合我。

解决方法

如果您是使用CRA创建的项目,并且想要配置dotenv来更改加载env文件的路径,那么您将不得不执行npm eject

或者,您可以使用env-cmd实现相同的目的:

安装

npm i env-cmd
package.json 中的

添加脚本,例如:

"scripts": {
    "start": "react-scripts start","build": "react-scripts build","dev": "env-cmd -f envs/.env.dev react-scripts build","qa": "env-cmd -f envs/.env.qa react-scripts build","demo": "env-cmd -f envs/.env.demo react-scripts build"
  },

.env.dev目录中创建.env.qa.env.demoenvs/

现在,您可以运行:

$ npm run dev // it will use envs/.env.dev file
$ npm run qa // it will use envs/.env.qa file
$ npm run demo // it will use envs/.env.demo file