import Taro from '@tarojs/taro' // 环境类型 export type EnvType = 'development' | 'test' | 'production' // 环境配置接口 export interface EnvConfig { name: string apiBaseURL: string timeout: number enableLog: boolean enableMock: boolean } // 各环境配置 const envConfigs: Record = { // 开发环境 development: { name: '开发环境', apiBaseURL: 'https://sit.light120.com', timeout: 15000, enableLog: true, enableMock: true }, // 测试环境 test: { name: '测试环境', apiBaseURL: 'https://sit.light120.com', timeout: 12000, enableLog: true, enableMock: false }, // 生产环境 production: { name: '生产环境', apiBaseURL: 'https://sit.light120.com', timeout: 10000, enableLog: false, enableMock: false } } // 获取当前环境 export const getCurrentEnv = (): EnvType => { // 在小程序环境中,使用默认逻辑判断环境 // 可以根据实际需要配置不同的判断逻辑 // 可以根据实际部署情况添加更多判断逻辑 // 比如通过 Taro.getEnv() 获取当前平台环境 const currentEnv = Taro.getEnv() // 在开发调试时,可以通过修改这里的逻辑来切换环境 // 默认在小程序中使用生产环境配置 if (currentEnv === Taro.ENV_TYPE.WEAPP) { // 微信小程序环境 return 'production' } // 默认返回开发环境(便于调试) return 'development' } // 获取当前环境配置 export const getCurrentConfig = (): EnvConfig => { const env = getCurrentEnv() return envConfigs[env] } // 获取指定环境配置 export const getEnvConfig = (env: EnvType): EnvConfig => { return envConfigs[env] } // 是否为开发环境 export const isDevelopment = (): boolean => { return getCurrentEnv() === 'development' } // 是否为生产环境 export const isProduction = (): boolean => { return getCurrentEnv() === 'production' } // 是否为测试环境 export const isTest = (): boolean => { return getCurrentEnv() === 'test' } // 环境配置调试信息 export const getEnvInfo = () => { const config = getCurrentConfig() return { env: getCurrentEnv(), config, taroEnv: Taro.getEnv(), platform: Taro.getEnv() === Taro.ENV_TYPE.WEAPP ? '微信小程序' : Taro.getEnv() === Taro.ENV_TYPE.H5 ? 'H5' : Taro.getEnv() === Taro.ENV_TYPE.RN ? 'React Native' : '未知' } } // 导出当前环境配置(方便直接使用) export default getCurrentConfig()