62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
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();
|