Las variables de entorno son una forma de llamar información de afuera a nuestro software, sirve para definir parámetros sencillos de configuración de los programas de modo que puedan ejecutarse en diferentes ambiente sin necesidad de modificar el código fuente de un script.
Muy frecuentemente se utilizan algunos paquetes tales como dotenv para leer tus variables de entorno. Aunque esto requería instalar el paquete e importarlo en cada archivo donde lo necesites, tal como:
file.js
require('dotenv').config();
Desde la versión 20.6 de Node.js de forma nativa podemos leer las variables de entorno desde un fichero sin la necesidad de instalar paquetes.
Creas tu archivo .env y guardas tus variables de entorno allí.
.env
WEB="whatever.com"
Dejas tus scripts como lo dejarías normalmente, pero sin tener que importar nada, de la siguiente manera:
file.js
let web = process.env.WEB
console.log("Tu web: " + web)
La novedad está en que al correr tu script debemos pasar una bandera para poder apuntar al fichero donde tenemos nuestras variables, de tal manera:
node --env-file .env entorno.js
El problema que se tenía con esta bandera era que siempre se apuntaba hacia el mismo fichero y puede ser de que trabajemos con diferentes ficheros, así que entre las novedades de la versión 20.12 de Node.js podemos descartar el uso de la bandera --env-file
para este caso de uso y llamar nuestro script normalmente node file.js
. La nueva función trabaja de la siguiente manera.
.env
WEB="whatever.com"
file.js
process.loadEnvFile() // nueva funcionalidadlet web = process.env.WEB
console.log("Tu web: " + web)
Llamamos a process.loadEnvFile()
dentro de tu script, el cual va a llamar por defecto al archivo .env que tienes en la raíz de tu directorio, ya si quieres agregar un fichero diferente solo deberías de agregarlo dentro de los paréntesis ().
Si vas a utilizar un solo fichero viene muy bien el uso de la bandera, pero si vas a trabajar con varios ficheros viene muy bien utilizar esta nueva utilidad.