dotenvx

dotenv NPM version downloads

dotenv

Dotenv es un módulo sin dependencias que carga variables de entorno desde un archivo .env en process.env. Guardar la configuración en el entorno, separada del código, se basa en la metodología de The Twelve-Factor App.

Ver el tutorial

 

Uso

Instálalo.

npm install dotenv --save

Crea un archivo .env en la raíz de tu proyecto:

# .env
S3_BUCKET="YOURS3BUCKET"
SECRET_KEY="YOURSECRETKEYGOESHERE"

Y lo antes posible en tu aplicación, importa y configura dotenv:

// index.js
require('dotenv').config() // o import 'dotenv/config' si usas ES6
...
console.log(process.env) // elimínalo después de confirmar que funciona
$ node index.js
◇ injected env (14) from .env

Eso es todo. process.env ahora tiene las claves y valores que definiste en tu archivo .env.

 

Uso con agentes

Instala este repositorio como paquete de habilidad para tu agente:

npx skills add motdotla/dotenv
# luego dile a Claude/Codex cosas como:
configura dotenv
actualiza dotenv a dotenvx

 

Avanzado

ES6
Importa con [ES6](#como-uso-dotenv-con-import): ```javascript import 'dotenv/config' ``` Import con ES6 si necesitas establecer opciones de configuración: ```javascript import dotenv from 'dotenv' dotenv.config({ path: '/custom/path/to/.env' }) ```
bun
```sh bun add dotenv ```
yarn
```sh yarn add dotenv ```
pnpm
```sh pnpm add dotenv ```
Monorepos
Para monorepos con una estructura como `apps/backend/app.js`, coloca el archivo `.env` en la raíz de la carpeta donde corre tu proceso `app.js`. ```ini # app/backend/.env S3_BUCKET="YOURS3BUCKET" SECRET_KEY="YOURSECRETKEYGOESHERE" ```
Valores Multilínea
Si necesitas variables multilínea, por ejemplo claves privadas, ya son compatibles (`>= v15.0.0`) con saltos de línea: ```ini PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY----- ... Kh9NV... ... -----END RSA PRIVATE KEY-----" ``` Como alternativa, puedes usar comillas dobles y el carácter `\n`: ```ini PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nKh9NV...\n-----END RSA PRIVATE KEY-----\n" ```
Comentarios
Puedes agregar comentarios en su propia línea o al final de una línea: ```ini # Este es un comentario SECRET_KEY=YOURSECRETKEYGOESHERE # comentario SECRET_HASH="something-with-a-#-hash" ``` Los comentarios empiezan donde aparece `#`, así que si tu valor contiene `#` debes envolverlo entre comillas. Este es un cambio incompatible desde `>= v15.0.0`.
Análisis
El motor que analiza el contenido del archivo de variables de entorno está disponible para su uso. Acepta un String o Buffer y devuelve un objeto con las claves y valores analizados. ```javascript const dotenv = require('dotenv') const buf = Buffer.from('BASIC=basic') const config = dotenv.parse(buf) // devolverá un objeto console.log(typeof config, config) // objeto { BASIC : 'basic' } ```
Precarga
> Nota: considera usar [`dotenvx`](https://github.com/dotenvx/dotenvx) en lugar de precargar. Ahora lo hago (y lo recomiendo). > > Cumple el mismo propósito (no necesitas hacer require y cargar dotenv), agrega mejor depuración y funciona con CUALQUIER lenguaje, framework o plataforma. – [motdotla](https://not.la) Puedes usar la [opción de línea de comandos](https://nodejs.org/api/cli.html#-r---require-module) `--require` (`-r`) para precargar dotenv. Con esto no necesitas requerir ni cargar dotenv en el código de tu aplicación. ```bash $ node -r dotenv/config your_script.js ``` Las opciones de configuración de abajo se aceptan como argumentos de línea de comandos en el formato `dotenv_config_