Files
xj-screen/src/utils/env.ts
T

38 lines
1.5 KiB
TypeScript

// export function getAppEnvConfig() {
// const ENV = import.meta.env;
// const { VITE_GLOB_API_URL, VITE_GLOB_API_YIN_JI, VITE_GLOB_API_JIAN_CE, VITE_GLOB_API_XIAN_YUN, VITE_GLOB_API_YIN_CHUAN } = ENV;
// return {
// VITE_GLOB_API_URL,
// VITE_GLOB_API_YIN_JI,
// VITE_GLOB_API_JIAN_CE,
// VITE_GLOB_API_XIAN_YUN,
// VITE_GLOB_API_YIN_CHUAN,
// };
// }
export function getAppEnvConfig() {
// 1. 优先:运行时注入(Docker)
const runtimeEnv = (window as any).__APP_ENV__ || {};
// 2. 其次:构建时环境变量(.env 文件)
const buildEnv = import.meta.env;
// 3. 获取 VITE_GLOB_API_URL:运行时 > 构建时 > 默认值
const VITE_GLOB_API_URL = runtimeEnv?.VITE_GLOB_API_URL || buildEnv.VITE_GLOB_API_URL || 'https://api.xjygjk.com'; // 默认兜底
// 解析主机名和协议
const url = new URL(VITE_GLOB_API_URL);
const host = url.hostname;
const protocol = url.protocol === 'https:' ? 'wss://' : 'ws://';
return {
VITE_GLOB_API_URL,
// WebSocket 地址基于 VITE_GLOB_API_URL 动态生成
VITE_GLOB_API_YIN_JI: `${protocol}${host}/health-watch/websocket/watchMonitor`,
VITE_GLOB_API_JIAN_CE: `${protocol}${host}/health-emergency/websocket/emergency`,
VITE_GLOB_API_XIAN_YUN: `${protocol}${host}/health-emergency/websocket/emergency3`,
VITE_GLOB_API_YIN_CHUAN: `${protocol}${host}/health-emergency/websocket/emergency4`,
};
}