react-scripts传递环境变量报错:REACT_APP_LOG_URL未被识别
问题原因与解决方法
你遇到的错误是因为Windows系统的命令行(cmd)不支持类Unix的环境变量前缀写法,你用的REACT_APP_LOG_URL=http://example.com react-scripts start是Linux/macOS下的语法,Windows cmd会把REACT_APP_LOG_URL当成一个命令来执行,所以报错找不到这个命令。
解决方法
方法一:适配Windows cmd的写法
修改package.json里的start命令,用set设置环境变量,再用&&连接启动命令:
"scripts": { "start": "set REACT_APP_LOG_URL=http://example.com && react-scripts start", "build": "react-scripts build", ... }
如果用PowerShell执行脚本,需要改成PowerShell的语法:
"scripts": { "start": "$env:REACT_APP_LOG_URL=\"http://example.com\"; react-scripts start", ... }
方法二:使用.env文件(跨平台推荐)
这种方式不需要修改scripts,而且Windows和Unix系统都能兼容:
- 在项目根目录创建
.env文件 - 在文件里写入环境变量:
REACT_APP_LOG_URL=http://example.com
- 重启
npm start,React会自动加载这个文件里的变量,你之前的process.env.REACT_APP_LOG_URL代码不需要修改。
注意:React规定自定义环境变量必须以
REACT_APP_开头,你这部分的写法是正确的。
内容的提问来源于stack exchange,提问作者geometer
相关产品推荐
相关产品推荐

