import Taro from "@tarojs/taro"; /** * 环境配置:从 config/env.config.ts 经 defineConstants 注入 * 构建时由 config/index.ts 根据 APP_ENV 选择并注入 */ export type EnvType = "dev" | "dev_local" | "sit" | "pr"; export interface EnvConfig { name: string; apiBaseURL: string; ossBaseURL: string; timeout: number; enableLog: boolean; enableMock: boolean; customerService: { corpId: string; serviceUrl: string; }; } // 从 defineConstants 注入的编译时常量读取 const getInjectedConfig = (): EnvConfig => ({ name: process.env.APP_ENV || "dev", apiBaseURL: process.env.API_BASE_URL || "", ossBaseURL: process.env.OSS_BASE_URL || "", timeout: Number(process.env.TIMEOUT) || 10000, enableLog: process.env.ENABLE_LOG === "true", enableMock: false, customerService: { corpId: process.env.CUSTOMER_CORP_ID || "", serviceUrl: process.env.CUSTOMER_SERVICE_URL || "", }, }); export const getCurrentEnv = (): EnvType => (process.env.APP_ENV as EnvType) || "dev"; export const getCurrentConfig = (): EnvConfig => getInjectedConfig(); export const isDevelopment = (): boolean => getCurrentEnv() === "dev" || getCurrentEnv() === "dev_local" || getCurrentEnv() === "sit"; export const isProduction = (): boolean => getCurrentEnv() === "pr"; export const getEnvInfo = () => { const config = getCurrentConfig(); return { env: getCurrentEnv(), config, taroEnv: (Taro as any).getEnv?.(), platform: (Taro as any).getEnv?.() === (Taro as any).ENV_TYPE?.WEAPP ? "微信小程序" : (Taro as any).getEnv?.() === (Taro as any).ENV_TYPE?.WEB ? "Web" : "未知", }; }; export default getCurrentConfig();