fix: load environment-specific .env files based on NODE_ENV

- env.js now loads .env.production, .env.preprod, or .env.dev
- Removes redundant dotenv.config() from email.service.js
- Fixes SMTP config not loading in production/preprod

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
soufiane 2025-12-02 17:41:15 +01:00
parent 352b941570
commit d4a8ff261d
2 changed files with 25 additions and 4 deletions

View File

@ -3,8 +3,31 @@
* Ce fichier doit être importé en premier dans l'application
*/
import dotenv from 'dotenv';
import path from 'path';
import { fileURLToPath } from 'url';
// Charger les variables d'environnement sans écraser celles fournies par Docker/système
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const rootDir = path.resolve(__dirname, '../..');
// Déterminer le fichier .env à charger selon NODE_ENV
const nodeEnv = process.env.NODE_ENV || 'development';
let envFile = '.env';
if (nodeEnv === 'production') {
envFile = '.env.production';
} else if (nodeEnv === 'preproduction') {
envFile = '.env.preprod';
} else if (nodeEnv === 'development') {
envFile = '.env.dev';
}
// Charger d'abord le fichier spécifique à l'environnement
const envPath = path.join(rootDir, envFile);
console.log(`📁 Chargement config: ${envFile} (NODE_ENV=${nodeEnv})`);
dotenv.config({ path: envPath, override: false });
// Charger aussi .env comme fallback (sans écraser)
dotenv.config({ override: false });
export default {

View File

@ -1,10 +1,8 @@
/**
* Service d'envoi d'emails avec Nodemailer
* Note: Les variables d'environnement sont chargées par src/config/env.js
*/
import nodemailer from 'nodemailer';
import dotenv from 'dotenv';
dotenv.config();
// Configuration du transporteur email (créé à la demande pour éviter les problèmes de chargement)
let transporter = null;