NextJS项目配置.env后REACT_APP_API_URL仍为undefined问题求助
React项目.env环境变量返回undefined解决方案
- 首先确认.env文件存放路径和文件名正确
你控制台显示加载的是D:\ReactJsProj.env,说明文件存放位置异常,若你的项目根目录为D:\ReactJsProj,.env文件必须放在根目录下(和package.json同级),正确加载路径应为D:\ReactJsProj\.env。同时注意Windows系统默认隐藏文件扩展名,很容易将文件误存为.env.txt,请开启文件扩展名显示,确认文件名就是.env,无任何多余后缀。 - 检查环境变量书写规范
变量名前后不要加空格,等号两侧也不要留空格,正确写法为REACT_APP_API_URL=http://localhost:4000,同时确认变量名没有拼写错误、大小写完全匹配。 - 检查webpack配置适配
如果你使用的是自行搭建的webpack 5项目而非Create React App默认脚手架,需要安装并配置dotenv-webpack插件加载.env文件:
如果你使用的是Create React App默认配置且未修改webpack设置,可跳过该步骤。// 先安装依赖:npm install dotenv-webpack -D const Dotenv = require('dotenv-webpack'); module.exports = { plugins: [new Dotenv()] }; - 确认服务重启操作正确
每次修改.env文件后,必须完全终止当前运行的dev服务,再重新执行npm start启动项目,热更新不会自动加载.env文件的变更。 - 临时验证方案
可以直接在启动命令中注入变量测试是否能正常读取:- Mac/Linux环境:将package.json中start命令修改为
"start": "REACT_APP_API_URL=http://localhost:4000 react-scripts start" - Windows cmd环境:修改为
"start": "set REACT_APP_API_URL=http://localhost:4000 && react-scripts start" - Windows PowerShell环境:修改为
"start": "($env:REACT_APP_API_URL = \"http://localhost:4000\") -and (react-scripts start)"
若修改后可正常读取变量,即可确定问题出在.env文件本身的路径或命名错误,回头重新核对即可。
- Mac/Linux环境:将package.json中start命令修改为
内容的提问来源于stack exchange,提问作者Dumi
相关产品推荐
相关产品推荐

