34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
/**
|
||
* 客户端环境变量统一入口(Expo 推荐使用 EXPO_PUBLIC_ 前缀)
|
||
*
|
||
* 注意:
|
||
* - 这里读取的是构建时/运行时注入的环境变量(EXPO_PUBLIC_*)
|
||
* - 真机联调时不要用 localhost,改为电脑局域网 IP,例如:http://192.168.1.10:8000
|
||
*/
|
||
|
||
export type AppEnv = 'dev' | 'prod';
|
||
|
||
function getRequiredEnv(name: string): string {
|
||
const value = process.env[name];
|
||
if (!value) {
|
||
throw new Error(`缺少环境变量:${name}(请检查 .env 配置)`);
|
||
}
|
||
return value;
|
||
}
|
||
|
||
function getOptionalEnv(name: string, fallback: string): string {
|
||
return process.env[name] ?? fallback;
|
||
}
|
||
|
||
export const APP_ENV = (getOptionalEnv('EXPO_PUBLIC_ENV', 'dev') as AppEnv) ?? 'dev';
|
||
|
||
export const API_BASE_URL = getRequiredEnv('EXPO_PUBLIC_API_BASE_URL');
|
||
|
||
/**
|
||
* 默认语言策略:
|
||
* - auto:优先设备语言(支持列表内时),否则回退 en
|
||
* - en/zh-TW:固定默认语言(仍允许用户在设置中手动切换并持久化)
|
||
*/
|
||
export const DEFAULT_LANGUAGE = getOptionalEnv('EXPO_PUBLIC_DEFAULT_LANGUAGE', 'auto');
|
||
|