标准答案
- 先划分环境:本地、测试、预发、生产,每个环境的接口域名、埋点、监控和功能开关可能不同。
- 构建期变量会进入静态产物,不能放 token、数据库地址、支付密钥等敏感信息。
- 运行时配置适合解决同一份静态产物部署到不同环境的问题。
- 配置要有默认值、校验和缺失时的失败提示,避免线上静默使用错误环境。
- 发布流程要能追踪某个版本使用了哪组配置。
题目解析
前端多环境配置最怕把“变量名像 secret”误认为安全。只要被客户端引用并进入 bundle,用户就能通过产物、DevTools 或 source map 找到。
构建期变量适合放公开 API base URL、站点环境、公开 feature flag。运行时配置适合容器部署、CDN 静态产物复用和灰度开关。
工程化设计要让配置可审计、可回滚、可校验,而不是在多个 .env 文件里手工复制。
常见误区
- 把私钥放进 VITE_、NEXT_PUBLIC_ 这类公开变量。
- 同一份构建产物在不同环境靠手改文件上线,没有版本记录。
- 配置缺失时继续运行,直到用户路径出错才暴露问题。