feat: 完成情绪博物馆项目重构和功能增强 - 新增日记评论和帖子功能 - 重构前端架构,优化用户体验 - 完善WebSocket通信机制 - 更新项目文档和部署配置
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
/**
|
||||
* 环境配置
|
||||
* 根据不同环境加载对应的配置文件
|
||||
*/
|
||||
|
||||
// 环境类型
|
||||
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: 'http://localhost:19089/api',
|
||||
wsBaseUrl: 'ws://localhost:19089/api',
|
||||
uploadUrl: 'http://localhost:19089/api/upload',
|
||||
debug: true,
|
||||
mock: false,
|
||||
appTitle: '情绪博物馆 - 本地',
|
||||
appVersion: '1.0.0'
|
||||
}
|
||||
|
||||
case 'dev':
|
||||
return {
|
||||
name: '开发环境',
|
||||
apiBaseUrl: 'http://localhost:19089/api',
|
||||
wsBaseUrl: 'ws://localhost:19089/api',
|
||||
uploadUrl: 'http://localhost:19089/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
|
||||
Reference in New Issue
Block a user