Qué hace esta herramienta
Un archivo .env se vuelve un objeto JSON plano.
# servicio
export PORT=8080
NAME="Ada Lovelace"
EMPTY=
{
"PORT": "8080",
"NAME": "Ada Lovelace",
"EMPTY": ""
}
Las líneas de comentario y las vacías se saltan, un export inicial se quita, y las comillas alrededor de un valor se van con él. Entre comillas dobles, \n y \t pasan a ser salto de línea y tabulación; entre comillas simples todo queda literal, como en un shell.
Una variable puesta dos veces se rechaza
PORT=8080
PORT=3000
Duplicate variable "PORT" on line 2: it already has a different value
Un shell se queda con la última asignación y no dice nada: el primer valor simplemente desaparecía. En un .env fusionado, editado y copiado entre entornos, ese silencio sale caro: lees el archivo, ves PORT=8080 arriba, y el proceso corre en 3000. Ahora la herramienta se detiene y nombra la variable y la línea. Dos asignaciones idénticas no son la confesión de nada y siguen pasando. Era un defecto real, encontrado al escribir esta página y corregido.
Todo es cadena
ID=007
ACTIVE=true
COUNT=3
{
"ID": "007",
"ACTIVE": "true",
"COUNT": "3"
}
Una variable de entorno es texto: eso es lo que el sistema guarda y lo que process.env devuelve. Tipar aquí COUNT como número sería una suposición, y tipar ID así le costaría sus ceros. La conversión conserva el texto, y el tipado se queda donde se conoce el significado: en tu código.
Lo que el formato no lleva
- Expansión.
PATH=$HOME/binse queda en$HOME/bin. Lo que valga$HOMEdepende de una máquina que esta página no ve. - Anidamiento.
.enves una lista plana de nombres y valores; no hay secciones ni estructura que encontrar. - Un comentario tras un valor entrecomillado.
A="a #b"conserva su almohadilla, que está dentro de las comillas. Tras un valor desnudo,#abre un comentario y se corta. - Cualquier nombre. Un nombre se hace de letras, cifras,
_y., y no empieza por cifra: la regla que aplica el propio shell. Lo demás se rechaza nombrándolo, en vez de escribirse en un JSON que ningún.envpodría recoger otra vez.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.