chengmw
9 days ago 96f4f1ea3a088d315a60c65bae50b5074441bf4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**
 * 多环境配置文件
 * 支持 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.SIT;
 
// 环境配置映射
const ENV_CONFIG = {
  [ENV_TYPES.DEV]: {
    // 开发环境
    baseURL: 'http://localhost:9015',
    timeout: 30000,
    withCredentials: false, // 后端CORS配置为*时需关闭
    name: '开发环境'
  },
  [ENV_TYPES.SIT]: {
    // 集成测试环境 - 通过 Nginx 代理访问后端,避免跨域
    baseURL: '',  // 使用相对路径,通过Nginx代理转发
    timeout: 30000,
    withCredentials: false,
    name: '集成测试环境'
  },
  [ENV_TYPES.UAT]: {
    // 用户验收环境
    baseURL: 'http://uat-api.example.com:9015',
    timeout: 30000,
    withCredentials: true,
    name: '用户验收环境'
  },
  [ENV_TYPES.PRD]: {
    // 生产环境 - 通过 Nginx 代理访问后端
    baseURL: '',  // 使用相对路径,通过Nginx代理转发
    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;