初始化工程
This commit is contained in:
109
src/config/env.ts
Normal file
109
src/config/env.ts
Normal file
@@ -0,0 +1,109 @@
|
||||
import Taro from '@tarojs/taro'
|
||||
|
||||
// 环境类型
|
||||
export type EnvType = 'development' | 'test' | 'production'
|
||||
|
||||
// 环境配置接口
|
||||
export interface EnvConfig {
|
||||
name: string
|
||||
apiBaseURL: string
|
||||
apiVersion: string
|
||||
timeout: number
|
||||
enableLog: boolean
|
||||
enableMock: boolean
|
||||
}
|
||||
|
||||
// 各环境配置
|
||||
const envConfigs: Record<EnvType, EnvConfig> = {
|
||||
// 开发环境
|
||||
development: {
|
||||
name: '开发环境',
|
||||
apiBaseURL: 'https://dev-api.playballtogether.com',
|
||||
apiVersion: 'v1',
|
||||
timeout: 15000,
|
||||
enableLog: true,
|
||||
enableMock: true
|
||||
},
|
||||
|
||||
// 测试环境
|
||||
test: {
|
||||
name: '测试环境',
|
||||
apiBaseURL: 'https://test-api.playballtogether.com',
|
||||
apiVersion: 'v1',
|
||||
timeout: 12000,
|
||||
enableLog: true,
|
||||
enableMock: false
|
||||
},
|
||||
|
||||
// 生产环境
|
||||
production: {
|
||||
name: '生产环境',
|
||||
apiBaseURL: 'https://api.playballtogether.com',
|
||||
apiVersion: 'v1',
|
||||
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()
|
||||
Reference in New Issue
Block a user