总结下这类前后端分离项目,环境变量注入在开发过程(包括开发环境、测试环境以及生产环境,包括前后端)中的最佳实践,以及如何确保一次性就做对,避免因为注入差错带来的检查成本。
让我总结一下环境变量注入的最佳实践:
-
环境变量命名规范:
# 前端环境变量(Vite/React 等) VITE_* # Vite 专用前缀,构建时会注入到前端代码 REACT_APP_* # React 专用前缀 # 后端环境变量 FLASK_* # Flask 专用前缀 DJANGO_* # Django 专用前缀 DB_* # 数据库相关 REDIS_* # Redis 相关
-
环境配置文件管理:
项目根目录/ ├── .env # 基础配置,可以提交到 git ├── .env.local # 本地开发配置,不提交到 git ├── .env.development # 开发环境配置 ├── .env.test # 测试环境配置 ├── .env.production # 生产环境配置 └── .gitignore # 忽略 .env.local 和敏感配置
-
Docker 构建阶段的环境变量注入:
# 前端 Dockerfile FROM node:20-alpine as builder # 1. 声明构建参数 ARG NODE_ENV ARG VITE_DOMAIN ARG VITE_API_BASE_URL # 2. 设置环境变量 ENV NODE_ENV=$NODE_ENV \ VITE_DOMAIN=$VITE_DOMAIN \ VITE_API_BASE_URL=$VITE_API_BASE_URL # 3. 构建时注入 RUN npm run build