Files
happy-life-star/web/src/config/env.ts
T
peanut d3746fa6c7 feat: AI端点测试动态参数表单、接口工作流行内测试、本地开发环境改为线上域名
- 后端新增 /ai/endpoint/test 和 /ai/endpoint/stream 接口,支持直接端点测试
- 前端增加行内测试功能(场景绑定+接口工作流)
- 测试对话框增加动态参数表单和参数定义编辑
- 支持 _meta 格式的默认输入参数处理
- web、web-admin 本地开发环境 API 调用改为线上域名 https://lifescript.happylifeos.com

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 16:10:24 +08:00

156 lines
3.9 KiB
TypeScript

/**
* 环境配置
* 根据不同环境加载对应的配置文件
*/
// 环境类型
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