O que esta ferramenta faz
Um arquivo .env vira um objeto JSON plano.
# serviço
export PORT=8080
NAME="Ada Lovelace"
EMPTY=
{
"PORT": "8080",
"NAME": "Ada Lovelace",
"EMPTY": ""
}
As linhas de comentário e as vazias são puladas, um export no começo é removido, e as aspas em volta de um valor vão junto. Entre aspas duplas, \n e \t viram quebra de linha e tabulação; entre aspas simples tudo fica literal, como num shell.
Uma variável posta duas vezes é recusada
PORT=8080
PORT=3000
Duplicate variable "PORT" on line 2: it already has a different value
Um shell fica com a última atribuição e não diz nada: o primeiro valor simplesmente sumia. Num .env que foi juntado, editado e copiado entre ambientes, esse silêncio sai caro: você lê o arquivo, vê PORT=8080 no topo, e o processo roda na 3000. Agora a ferramenta para e nomeia a variável e a linha. Duas atribuições idênticas não confessam nada e continuam passando. Era um defeito real, encontrado ao escrever esta página e corrigido.
Tudo é string
ID=007
ACTIVE=true
COUNT=3
{
"ID": "007",
"ACTIVE": "true",
"COUNT": "3"
}
Uma variável de ambiente é texto: é o que o sistema guarda e o que o process.env devolve. Tipar COUNT como número aqui seria um palpite, e tipar ID assim custaria os zeros dele. A conversão guarda o texto, e a tipagem fica onde o sentido é conhecido — no seu código.
O que o formato não carrega
- Expansão.
PATH=$HOME/bincontinua$HOME/bin. O que$HOMEvale depende de uma máquina que esta página não vê. - Aninhamento.
.envé uma lista plana de nomes e valores; não há seções nem estrutura a encontrar. - Um comentário depois de um valor entre aspas.
A="a #b"mantém a cerquilha, que está dentro das aspas. Depois de um valor nu,#abre um comentário e é cortado. - Qualquer nome. Um nome é feito de letras, algarismos,
_e., e não começa por algarismo — a regra que o próprio shell aplica. O resto é recusado com o nome dito, em vez de escrito num JSON que nenhum.envconseguiria receber de volta.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.