/** * 多环境配置文件 * 支持 dev/sit/uat/prd 四套环境 */ // 环境枚举 export const ENV_TYPES = { DEV: 'dev', SIT: 'sit', UAT: 'uat', PRD: 'prd' }; // 当前环境,默认为SIT测试环境 const CURRENT_ENV = process.env.REACT_APP_ENV || ENV_TYPES.DEV; // 环境配置映射 const ENV_CONFIG = { [ENV_TYPES.DEV]: { // 开发环境 baseURL: 'http://localhost:9015', timeout: 30000, withCredentials: false, // 后端CORS配置为*时需关闭 name: '开发环境' }, [ENV_TYPES.SIT]: { // 集成测试环境 - 通过 Nginx 代理访问后端,避免跨域 baseURL: 'http://localhost:9015', timeout: 30000, withCredentials: true, name: '集成测试环境' }, [ENV_TYPES.UAT]: { // 用户验收环境 baseURL: 'http://uat-api.example.com:9015', timeout: 30000, withCredentials: true, name: '用户验收环境' }, [ENV_TYPES.PRD]: { // 生产环境 baseURL: 'https://api.example.com', timeout: 30000, withCredentials: true, name: '生产环境' } }; // 获取当前环境配置 export const getCurrentEnvConfig = () => { return ENV_CONFIG[CURRENT_ENV] || ENV_CONFIG[ENV_TYPES.DEV]; }; // 获取当前环境名称 export const getCurrentEnvName = () => { return ENV_CONFIG[CURRENT_ENV]?.name || '未知环境'; }; // 获取当前环境标识 export const getCurrentEnv = () => { return CURRENT_ENV; }; // 设置环境(主要用于测试) export const setEnv = (env) => { if (Object.values(ENV_TYPES).includes(env)) { // 注意:实际项目中应该通过环境变量设置,这里仅用于演示 console.warn('环境切换仅在开发模式下可用'); } }; // 导出默认配置 const config = { env: CURRENT_ENV, ...getCurrentEnvConfig() }; export default config;