You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps构建React应用时错误加载环境文件问题求助

排查方向
  • 检查dotenv参数的位置是否正确
    你当前命令中dotenv_config_path=.env.$(ENVIRONMENT)放在了build之后,这属于react-scripts的命令参数,但dotenv_config_path是node加载dotenv模块时的配置项,应该放在react-scripts脚本路径之前。正确的命令格式应该是:

    node -r dotenv/config dotenv_config_path=.env.$(ENVIRONMENT) node_modules/react-scripts/bin/react-scripts.js --max_old_space_size=4096 build
    

    位置错误会导致dotenv没有加载你指定的文件,可能 fallback 到了其他环境配置。

  • 检查React Scripts自带的环境变量加载逻辑是否叠加
    React-scripts会自动加载特定命名的.env文件,比如.env、.env.local、.env.${NODE_ENV}等。如果你的构建环境中NODE_ENV设置为production,它会自动加载.env.production,如果这个文件存在且包含Environment2的配置,就会和你手动加载的文件变量叠加。可以在构建前明确设置NODE_ENV,或者检查是否存在这类默认加载的.env文件。

  • 验证$(ENVIRONMENT)变量的实际取值
    查看Azure DevOps构建日志,确认$(ENVIRONMENT)变量实际输出的值是否为Environment1,是否存在大小写错误(比如实际输出environment1,但你的文件是.env.Environment1),导致加载了错误的文件或未加载到目标文件,进而使用了其他环境的配置。

  • 检查构建目录的缓存/残留文件
    Azure DevOps代理可能会缓存之前的构建产物,若之前构建过Environment2且未清理build目录,新构建的文件可能和旧文件混在一起。在构建任务前添加清理步骤:

    - script: rm -rf build
      displayName: "Clean build directory"
    

    或者检查构建任务是否启用了缓存,确保不会复用旧的构建产物。

  • 检查.env文件的语法正确性
    Dotenv默认使用=作为键值分隔符,你当前的.env文件用的是:,可能导致变量未被正确解析,进而React项目 fallback 到其他环境的配置。将文件中的:替换为=:

    REACT_APP_API_URL="env1's api url"
    REACT_APP_FEATURE_1=true
    
  • 排查是否存在其他加载环境变量的逻辑
    检查项目中是否有其他代码或脚本(比如prebuild脚本)在加载.env文件,这些逻辑可能在你指定的dotenv加载之前或之后,加载了Environment2的配置,导致变量被覆盖或合并。

内容的提问来源于stack exchange,提问作者AppSupportGuru1995

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:35:35