环境变量修改
This commit is contained in:
@@ -3,20 +3,25 @@ import { existsSync } from 'fs';
|
||||
import { resolve } from 'path';
|
||||
|
||||
/**
|
||||
* 分层加载环境变量(后加载的文件覆盖先前的同名键):
|
||||
* 1. .env.{NODE_ENV} — 集成配置(MOCK_SMS、微信、阿里云等)
|
||||
* 2. .env.{NODE_ENV}.local / .env.local — 本机覆盖
|
||||
* 3. .env — 本机基础(PORT、DATABASE_URL);应只放机器相关项,勿重复 MOCK_SMS
|
||||
* 环境变量加载策略(后加载的文件覆盖先前的同名键):
|
||||
*
|
||||
* - 本地开发(NODE_ENV !== production):仅 `.env` + `.env.local`
|
||||
* `.env.development` 仅作 deploy/sync-api-env.sh 的源模板,不在本地 dev 自动加载
|
||||
*
|
||||
* - 线上(NODE_ENV=production):`.env.production` → `.env.production.local` → `.env`
|
||||
* 服务器实际运行时以 sync 脚本写入的 `.env` 为准
|
||||
*/
|
||||
const apiRoot = resolve(__dirname, '..');
|
||||
const nodeEnv = process.env.NODE_ENV ?? 'development';
|
||||
const isProduction = nodeEnv === 'production';
|
||||
|
||||
const layers = [
|
||||
resolve(apiRoot, `.env.${nodeEnv}`),
|
||||
resolve(apiRoot, `.env.${nodeEnv}.local`),
|
||||
resolve(apiRoot, '.env.local'),
|
||||
resolve(apiRoot, '.env'),
|
||||
];
|
||||
const layers = isProduction
|
||||
? [
|
||||
resolve(apiRoot, '.env.production'),
|
||||
resolve(apiRoot, '.env.production.local'),
|
||||
resolve(apiRoot, '.env'),
|
||||
]
|
||||
: [resolve(apiRoot, '.env'), resolve(apiRoot, '.env.local')];
|
||||
|
||||
for (const file of layers) {
|
||||
if (existsSync(file)) {
|
||||
|
||||
Reference in New Issue
Block a user