如何在不使用Webpack的react-scripts项目中使用Dotenv及解决变量未定义问题
React项目用react-scripts启动时环境变量读取失败排查方案
- 不要直接打印完整
process.env对象验证
react-scripts出于安全策略,不会向浏览器侧注入完整的process.env对象,只会单独注入符合命名规则的环境变量。直接打印process.env必然返回undefined,需要直接打印具体变量验证,示例:console.log(process.env.REACT_APP_SOLANA_RPC_HOST) - 确认
.env.local存放位置正确
该文件必须放在项目根目录,与package.json文件同级,不能放在src、public等子目录下。 - 修改环境变量文件后必须重启开发服务
react-scripts仅在服务启动时加载一次环境变量,新增、修改env文件内容后,必须终止当前正在运行的yarn start进程,重新执行启动命令才会生效。 - 确认环境变量命名完全符合规则
所有自定义环境变量的前缀必须是完全匹配的大写REACT_APP_,拼写错误、大小写不匹配(比如小写的react_app_、漏写下划线的REACTAPP_)都会导致变量被过滤,无法正常注入。 - 排除多env文件优先级冲突
若项目根目录同时存在.env.development.local、.env.development文件,注意react-scripts的加载优先级为:.env.local>.env.development.local>.env.development>.env,避免高优先级文件的配置覆盖了.env.local中的内容。
内容的提问来源于stack exchange,提问作者Regina Luo
相关产品推荐
相关产品推荐

