105 lines
2.5 KiB
TypeScript
105 lines
2.5 KiB
TypeScript
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<EnvType, EnvConfig> = {
|
|
// 开发环境
|
|
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()
|