/** * 环境配置 * 根据不同环境加载对应的配置文件 */ // 环境类型 export type EnvType = 'local' | 'dev' | 'test' | 'prod' // 环境配置接口 export interface EnvConfig { // 环境名称 name: string // API基础URL apiBaseUrl: string // WebSocket URL wsBaseUrl: string // 文件上传URL uploadUrl: string // 是否开启调试模式 debug: boolean // 是否开启mock mock: boolean // 应用标题 appTitle: string // 应用版本 appVersion: string } // 获取当前环境 export const getCurrentEnv = (): EnvType => { // 从环境变量获取,默认为local const env = import.meta.env.VITE_APP_ENV as EnvType return env || 'local' } // 获取环境配置 export const getEnvConfig = (): EnvConfig => { const env = getCurrentEnv() // 调试信息:打印所有环境变量 console.log('当前环境:', env) console.log('所有环境变量:', import.meta.env) // 优先使用环境变量,如果没有则使用默认值 const apiBaseUrl = import.meta.env.VITE_API_BASE_URL const wsBaseUrl = import.meta.env.VITE_WS_BASE_URL const uploadUrl = import.meta.env.VITE_UPLOAD_URL const debug = import.meta.env.VITE_DEBUG === 'true' const mock = import.meta.env.VITE_MOCK === 'true' const appTitle = import.meta.env.VITE_APP_TITLE const appVersion = import.meta.env.VITE_APP_VERSION || '1.0.0' console.log('环境变量解析结果:', { apiBaseUrl, wsBaseUrl, uploadUrl, debug, mock, appTitle, appVersion }) // 如果环境变量存在,直接使用 if (apiBaseUrl) { return { name: getEnvironmentName(env), apiBaseUrl, wsBaseUrl: wsBaseUrl || apiBaseUrl.replace('http', 'ws').replace('/api', ''), uploadUrl: uploadUrl || `${apiBaseUrl}/upload`, debug, mock, appTitle: appTitle || `情绪博物馆 - ${getEnvironmentName(env)}`, appVersion } } // 如果没有环境变量,使用默认配置 switch (env) { case 'local': return { name: '本地环境', apiBaseUrl: 'https://lifescript.happylifeos.com/api', wsBaseUrl: 'wss://lifescript.happylifeos.com/ws', uploadUrl: 'https://lifescript.happylifeos.com/api/upload', debug: true, mock: false, appTitle: '情绪博物馆 - 本地', appVersion: '1.0.0' } case 'dev': return { name: '开发环境', apiBaseUrl: 'https://lifescript.happylifeos.com/api', wsBaseUrl: 'wss://lifescript.happylifeos.com/ws', uploadUrl: 'https://lifescript.happylifeos.com/api/upload', debug: true, mock: false, appTitle: '情绪博物馆 - 开发', appVersion: '1.0.0' } case 'test': return { name: '测试环境', apiBaseUrl: 'http://test.emotion-museum.com/api', wsBaseUrl: 'ws://test.emotion-museum.com', uploadUrl: 'http://test.emotion-museum.com/api/upload', debug: false, mock: false, appTitle: '情绪博物馆 - 测试', appVersion: '1.0.0' } case 'prod': return { name: '生产环境', apiBaseUrl: 'https://api.emotion-museum.com/api', wsBaseUrl: 'wss://api.emotion-museum.com', uploadUrl: 'https://api.emotion-museum.com/api/upload', debug: false, mock: false, appTitle: '情绪博物馆', appVersion: '1.0.0' } default: throw new Error(`未知的环境类型: ${env}`) } } // 获取环境名称 const getEnvironmentName = (env: EnvType): string => { switch (env) { case 'local': return '本地环境' case 'dev': return '开发环境' case 'test': return '测试环境' case 'prod': return '生产环境' default: return '未知环境' } } // 导出当前环境配置 export const envConfig = getEnvConfig() // 导出常用配置 export const { apiBaseUrl, wsBaseUrl, uploadUrl, debug, mock, appTitle, appVersion } = envConfig