Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

249
Vistas
dotenv no se carga cuando la ruta tiene una variable

Estoy tratando de usar dotenv para administrar configuraciones para diferentes entornos. Por el momento, solo tengo entorno de desarrollo. Para probar la biblioteca dotenv, tengo archivos .env y .env.development en la carpeta raíz.

En .env , tengo

 PORT=5001

En .env.development , tengo

 PORT=5002

En index.js , si tengo require('dotenv').config() , se carga el archivo .env y puedo ver que process.env.PORT es 5001.

Si tengo require('dotenv').config({path: '.env.'+process.env.NODE_ENV}) , y también tengo NODE_ENV=development node index.js , entonces .env.development no está cargado.

Sin embargo, si tengo require('dotenv').config({path: '.env.development'}) , el archivo .env.development se carga correctamente.

¿Puedo obtener ayuda? Gracias

Actualizar

El código de prueba que tengo es

 const dotenv = require('dotenv'); const environment = process.env.NODE_ENV || 'development'; console.log(environment); const dotenvPath = '.env.'+environment; console.log(dotenvPath); dotenv.config({path: dotenvPath}); console.log(process.env.PORT); console.log(process.env.NODE_ENV);

y estoy en Windows.

Cuando ejecuto set NODE_ENV=development & node index.js , el registro de la consola es

En CMD:

 D:\>set NODE_ENV=development & node index.js development .env.development undefined development

En Powershell, es correcto.

 PS D:\> $env:NODE_ENV='development'; node index.js development .env.development 5001 development

Supongo que cuando pongo el comando como secuencia de comandos en package.json, el comando se ejecuta en CMD, en lugar de en Powershell, aunque ejecuto npm run start:development en Powershell.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Bueno, puede acceder a las variables de process.env DESPUÉS de ejecutar el paquete dotenv .

Entonces, cuando pasa una variable .env a su configuración, todavía no está disponible para el servidor.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Es posible. Probé en mi local siguiendo esta publicación y todo funcionó como se esperaba.

Alterne entre múltiples archivos .env como .env.development con node.js

Agregar una captura de pantalla para la prueba de trabajo Código con salida

about 4 years ago · Juan Pablo Isaza Denunciar

0

Finalmente, encuentro la razón.

La forma en que lo depuro es tener dotenv.config({path: dotenvPath, debug: true}); en mi código y luego, cuando ejecuto set NODE_ENV=development & node index.js en CMD, obtengo

 development .env.development [dotenv][DEBUG] Failed to load .env.development ENOENT: no such file or directory, open '.env.development ' undefined development

Me doy cuenta del espacio en el nombre del archivo, lo que lleva a que no se pueda encontrar .env.development .

Luego cambio el comando para set NODE_ENV=development&node index.js , luego comienza a funcionar.

 development .env.development 5001 development
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda