Files
life-echo/app-expo/scripts/use-env.js
2026-05-20 10:27:40 +08:00

40 lines
1.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 将 app-expo/env/<name> 复制为 .env供 Metro/Expo 读取 EXPO_PUBLIC_*。
*
* 环境模板放在 env/ 子目录,而非 .env.staging / .env.production
* Release 构建时 Expo 会按 NODE_ENV=production 自动加载根目录 .env.production
* 若与 use-env 写入的 .env 并存production 会覆盖 staging见 @expo/env getEnvFiles
*
* 参数 name → 源文件:
* development → env/development
* staging → env/staging
* production → env/production
*
* CI.github/workflows/app-expo-deploy.yml 按分支/tag 调用本脚本。
*/
const fs = require('fs');
const path = require('path');
const env = process.argv[2] || 'development';
const root = path.join(__dirname, '..');
const src = path.join(root, 'env', env);
const dest = path.join(root, '.env');
/** @deprecated 旧路径;若仍存在会在 Release 构建中覆盖 .env */
const legacyEnvFile = path.join(root, `.env.${env}`);
if (!fs.existsSync(src)) {
console.error(`Missing env/${env} (expected ${src})`);
process.exit(1);
}
fs.copyFileSync(src, dest);
console.log(`Switched to env/${env} → .env`);
if (fs.existsSync(legacyEnvFile)) {
console.warn(
`Warning: legacy ${path.basename(legacyEnvFile)} still exists. ` +
'Remove it or Release builds may load production values over .env.',
);
}