import { logger } from '@spine/logger'; import { resolve as pathResolve } from 'path'; import * as fs from 'fs'; import { getProjectPath } from '@erect/core/paths'; import { isErectProject } from './utils/isErectProject'; if (isErectProject()) { const log = logger('erect:env'); const envFileNames = ['.env']; if (process.env.DEPLOYMENT != null) { envFileNames.push(`.env.${process.env.DEPLOYMENT}`); } if (process.env.NODE_ENV != null && process.env.NODE_ENV !== process.env.DEPLOYMENT) { if (process.env.NODE_ENV === 'development') { envFileNames.push('.env.development'); } if (process.env.NODE_ENV === 'production') { envFileNames.push('.env.production'); } } envFileNames.reverse(); let found = false; for (const envFileName of envFileNames) { const envFile = pathResolve(getProjectPath(), envFileName); if (fs.existsSync(envFile)) { found = true; log.verbose(`Registering environment variables from ${envFile}`); require('dotenv').config({ path: envFile }); break; } } if (!found) { log.verbose(`No environment file was registered`); } }