我使用创建反应应用程序引导我的应用程序。

我添加了两个。env文件。env.development和。env。生产在根。

我的. environment .development包括:

API_URL=http://localhost:3000/api
CALLBACK_URL=http://localhost:3005/callback

当我运行我的应用程序使用反应脚本启动和控制台进程。环境,它吐出

{ NODE_ENV: "development", PUBLIC_URL: "" }

我尝试了不同的事情,但它只是不拾起我的开发文件,我做错了什么?!

领导结构为:

/.env.development
/src/index.js

包中。Json脚本是:

"start": "export PORT=3005; npm-run-all --parallel server:start client:start",
    "client:start": "export PORT=3005; react-scripts start",
    "server:start": "node server.js",
    "build": "react-scripts build",

编辑:

@jamcreencia正确地指出我的变量应该以REACT_APP为前缀。

编辑2

如果我将文件命名为。env,它就可以工作,但如果我使用。env.development或。end.production就不行


当前回答

确保你的.env文件在根目录中,而不是在src文件夹中。

其他回答

当你从环境文件中获得undefined时,只需停止终端并使用NPM start命令重新启动。

1-确保.env文件基于你的react应用根目录

2-对于react应用程序,你需要在变量名前加上REACT_APP_前缀。例:REACT_APP_API_URL

3 .env文件修改后,kill服务器和NPM重新启动

我忘了加上process。env。

它看起来是这样的

const domain = process.env.REACT_APP_AUTH0_DOMAIN;

当使用.env文件时,无论是前端还是后端。

每当修改.env文件时,必须重新启动相应的服务器,以便更改在应用程序中生效。 热重载不会从.env文件中读取更改。

对我有用的是在我的包中安装env-cmd。JSON添加以下代码行

"scripts": {
"start": "env-cmd -f .env.development react-scripts start ",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"

}