A Saída JSON
Converter o arquivo .env de exemplo produz:
{
"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"
}
Note como APP_PORT, DATABASE_PORT e MAX_CONNECTIONS são convertidos para números, enquanto APP_DEBUG e DARK_MODE se tornam booleanos. Comentários são removidos automaticamente.
Como Funcionam os Arquivos .env
Arquivos .env usam sintaxe simples KEY=VALUE com estas convenções:
| Recurso | Sintaxe | Exemplo |
|---|---|---|
| Valor básico | KEY=value | APP_NAME=myapp |
| Valor entre aspas | KEY="valor com espaços" | GREETING="olá mundo" |
| Valor vazio | KEY= | VAR_VAZIA= |
| Comentário | # texto | # Isto é um comentário |
| Prefixo export | export KEY=value | export API_KEY=abc |
O parser lida com todas essas variações e as normaliza para pares chave-valor limpos.
Padrões Comuns 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
Aplicação Node.js
# .env
NODE_ENV=production
PORT=3000
LOG_LEVEL=info
CORS_ORIGIN=https://example.com
Por Que Converter para JSON
Migração entre Plataformas
Migrando de uma plataforma baseada em .env (Docker, Vercel) para um sistema baseado em JSON (Kubernetes ConfigMaps, AWS Parameter Store)? Converta primeiro para validar a estrutura.
Validação de Configuração
JSON é mais fácil de validar programaticamente. Converta seu .env para JSON, depois execute através de um validador de esquema JSON para detectar valores faltantes ou malformados.
Colaboração em Equipe
JSON é mais auto-documentado para membros da equipe não familiarizados com a configuração de ambiente de um projeto. A informação de tipo (números vs strings) é explícita.
Armadilhas de .env
O Problema da Noruega (Mesmo que YAML)
Valores sem aspas como NO, TRUE, FALSE podem ser interpretados como booleanos por alguns parsers. Sempre coloque aspas em valores que devem permanecer como strings:
# Incorreto - pode ser interpretado como booleano
COUNTRY=NO
# Correto - explicitamente uma string
COUNTRY="NO"
Valores Multilinha
Valores multilinha devem ser colocados entre aspas:
RSA_KEY="-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF...
-----END RSA PRIVATE KEY-----"
Referências de Variáveis
Alguns parsers .env suportam sintaxe ${VAR} para referências de variáveis. Esta ferramenta resolve referências dentro do mesmo arquivo quando possível.