d3746fa6c7
- 后端新增 /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>
156 lines
3.9 KiB
TypeScript
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
|