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

Azure Static Web Apps中dotEnv环境变量优先级及覆盖机制咨询

Azure Static Web Apps + React 环境变量覆盖原理与优先级规则

覆盖机制原理

React项目依赖Create React App内置的dotenv加载环境变量,它的核心逻辑是先读取进程级环境变量,再读取.env系列文件。Azure Static Web Apps的流水线(不管是GitHub Actions还是Azure DevOps)中配置的环境变量,是直接注入到构建进程的系统环境里的,属于优先级最高的进程级变量。当构建脚本运行时,dotenv检测到进程中已经存在REACT_APP_API_URL这类变量,就会直接使用这个值,完全跳过.env文件里的同键配置,这就是你看到的覆盖现象。

优先级规则(从高到低)

实际构建时,环境变量的加载优先级明确如下:

  • 流水线/构建平台配置的进程级环境变量(比如GitHub Actions yml里的env字段、Azure门户中Static Web Apps的构建环境变量)
  • .env.production.local(仅production环境生效,默认被.gitignore忽略,适合本地生产调试)
  • .env.production(你创建的生产环境配置文件)
  • .env.local(所有环境生效,默认被.gitignore忽略)
  • .env(基础环境配置文件)

补充说明:Azure Static Web Apps默认以production环境触发构建,所以会优先加载带production后缀的.env文件,但只要流水线里配置了同名的REACT_APP_前缀变量,就会直接覆盖所有文件中的对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 23:50:44