La Salida JSON
Convertir el archivo .env de ejemplo produce:
{
"APP_NAME": "myapp",
"APP_PORT": 3000,
"APP_DEBUG": true,
"DATABASE_HOST": "localhost",
"DATABASE_PORT": 5432,
"DATABASE_NAME": "myapp",
"DATABASE_USER": "admin",
"DATABASE_PASSWORD": "secret",
"DARK_MODE": true,
"MAX_CONNECTIONS": 100,
"ALLOWED_ORIGINS": "https://example.com https://api.example.com",
"API_KEY": "sk-abc123xyz789",
"JWT_SECRET": "my-super-secret-key"
}
Observa cómo APP_PORT, DATABASE_PORT y MAX_CONNECTIONS se convierten en números, mientras que APP_DEBUG y DARK_MODE se convierten en booleanos. Los comentarios se eliminan automáticamente.
Cómo Funcionan los Archivos .env
Los archivos .env usan simple sintaxis KEY=VALUE con estas convenciones:
| Característica | Sintaxis | Ejemplo |
|---|---|---|
| Valor básico | KEY=value | APP_NAME=myapp |
| Valor entre comillas | KEY="valor con espacios" | GREETING="hola mundo" |
| Valor vacío | KEY= | VAR_VACIA= |
| Comentario | # texto | # Esto es un comentario |
| Prefijo export | export KEY=value | export API_KEY=abc |
El parser maneja todas estas variaciones y las normaliza a pares clave-valor limpios.
Patrones Comunes de .env
Docker Compose
# docker-compose.env
POSTGRES_USER=admin
POSTGRES_PASSWORD=secret
POSTGRES_DB=myapp
REDIS_URL=redis://cache:6379
Vercel / Netlify
# .env.local
DATABASE_URL=postgresql://user:pass@host/db
NEXT_PUBLIC_API_URL=https://api.example.com
API_SECRET=sk-secret-key
Aplicación Node.js
# .env
NODE_ENV=production
PORT=3000
LOG_LEVEL=info
CORS_ORIGIN=https://example.com
Por Qué Convertir a JSON
Migración entre Plataformas
¿Moviéndote de una plataforma basada en .env (Docker, Vercel) a un sistema basado en JSON (Kubernetes ConfigMaps, AWS Parameter Store)? Convierte primero para validar la estructura.
Validación de Configuración
JSON es más fácil de validar programáticamente. Convierte tu .env a JSON, luego ejecútalo a través de un validador de esquema JSON para detectar valores faltantes o malformados.
Colaboración en Equipo
JSON es más auto-documentado para miembros del equipo no familiarizados con la configuración del entorno de un proyecto. La información de tipo (números vs cadenas) es explícita.
Trampas de .env
El Problema de Noruega (Mismo que YAML)
Los valores sin comillas como NO, TRUE, FALSE pueden ser interpretados como booleanos por algunos parsers. Siempre entrecomilla los valores que deben permanecer como cadenas:
# Incorrecto - podría interpretarse como booleano
COUNTRY=NO
# Correcto - explícitamente una cadena
COUNTRY="NO"
Valores Multilínea
Los valores multilínea deben estar entre comillas:
RSA_KEY="-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF...
-----END RSA PRIVATE KEY-----"
Referencias de Variables
Algunos parsers .env soportan sintaxis ${VAR} para referencias de variables. Esta herramienta resuelve referencias dentro del mismo archivo cuando es posible.