62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
/**
|
|
* 接口 baseURL 解析。
|
|
* 优先级:VITE_API_BASE_URL > H5 开发代理 > H5 生产域名推断 > 默认生产 API
|
|
*/
|
|
|
|
/** 极验 4.0 captcha_id(前端展示用;KEY 仅在后端校验) */
|
|
export const GEETEST4_CAPTCHA_ID = '75e8a175c43b9ecfa15372c658be05e5'
|
|
|
|
const DEFAULT_PROD_API = 'https://api.yunzer.cn'
|
|
|
|
/**
|
|
* @returns {string} 去掉末尾斜杠的 baseURL
|
|
*/
|
|
export function resolveBaseURL() {
|
|
let fromEnv = ''
|
|
try {
|
|
fromEnv =
|
|
(typeof import.meta !== 'undefined' &&
|
|
import.meta.env &&
|
|
import.meta.env.VITE_API_BASE_URL) ||
|
|
''
|
|
} catch (e) {
|
|
fromEnv = ''
|
|
}
|
|
|
|
if (fromEnv && fromEnv !== 'undefined' && fromEnv !== 'null') {
|
|
return String(fromEnv).replace(/\/$/, '')
|
|
}
|
|
|
|
// #ifdef H5
|
|
if (typeof window !== 'undefined' && window.location) {
|
|
const { hostname, protocol } = window.location
|
|
|
|
// 生产域名优先:避免 HBuilderX 构建后 DEV 仍为 true 时误走 /proxy-api
|
|
if (hostname.includes('yunzer.cn')) {
|
|
return DEFAULT_PROD_API
|
|
}
|
|
|
|
// 本地 H5 开发走 vite 代理
|
|
if (
|
|
(hostname === 'localhost' || hostname === '127.0.0.1') &&
|
|
typeof import.meta !== 'undefined' &&
|
|
import.meta.env &&
|
|
import.meta.env.DEV
|
|
) {
|
|
return '/proxy-api'
|
|
}
|
|
|
|
if (hostname === 'localhost' || hostname === '127.0.0.1') {
|
|
return `${protocol}//${hostname}:9000`.replace(/\/$/, '')
|
|
}
|
|
}
|
|
// #endif
|
|
|
|
return DEFAULT_PROD_API
|
|
}
|
|
|
|
/** 与 resolveBaseURL 相同,便于业务侧统一引用 */
|
|
export function getBaseURL() {
|
|
return resolveBaseURL()
|
|
}
|