Änderungen: - Einführung einer Logik zur Priorisierung des Ladens der Produktions-.env-Datei, falls vorhanden, andernfalls wird die lokale .env-Datei verwendet. - Hinzufügung von Protokollausgaben, um anzuzeigen, welche .env-Datei geladen wird. Diese Anpassungen verbessern die Flexibilität beim Laden von Umgebungsvariablen und erleichtern die Konfiguration in verschiedenen Umgebungen.
32 lines
921 B
JavaScript
32 lines
921 B
JavaScript
// Centralized environment loader
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import dotenv from 'dotenv';
|
|
import fs from 'fs';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
// Versuche zuerst Produktions-.env, dann lokale .env
|
|
const productionEnvPath = '/opt/yourpart/backend/.env';
|
|
const localEnvPath = path.resolve(__dirname, '../.env');
|
|
|
|
let envPath = localEnvPath; // Fallback
|
|
if (fs.existsSync(productionEnvPath)) {
|
|
envPath = productionEnvPath;
|
|
console.log('[env] Lade Produktions-.env:', productionEnvPath);
|
|
} else {
|
|
console.log('[env] Lade lokale .env:', localEnvPath);
|
|
}
|
|
|
|
// Lade .env-Datei
|
|
const result = dotenv.config({ path: envPath });
|
|
if (result.error) {
|
|
console.warn('[env] Konnte .env nicht laden:', result.error.message);
|
|
}
|
|
|
|
if (!process.env.SECRET_KEY) {
|
|
console.warn('[env] SECRET_KEY nicht gesetzt in .env');
|
|
}
|
|
export {};
|