Знал ли ты?
В Node.js есть встроенная утилита loadEnvFile.
Она делает ровно то же самое, что и dotenv, но без единой зависимости. По сути, это рантайм-эквивалент CLI-опции --env-file.
Вот как с её помощью можно воспроизвести порядок загрузки env-файлов, как это делает Next.js:
import { loadEnvFile } from 'node:process'
export function loadEnv() {
const nodeEnv = process.env.NODE_ENV || 'development'
// Load in order of precedence
const files = [
`.env.${nodeEnv}.local`,
nodeEnv === 'test' ? null : '.env.local',
`.env.${nodeEnv}`,
'.env',
].filter((file): file is string => !!file)
for (const file of files) {
try {
loadEnvFile(file)
break // Stop after the first successful load
} catch {}
}
}
@WebDev_Plus