node.js config npm – NODE_CONFIG_ENV

Estoy tratando de usar el paquete de configuración (npm install config) para poder usar diferentes configuraciones para diferentes entornos. Lo estoy ejecutando en windows 10.

Tengo 4 archivos en la carpeta de configuración: default.json, development.json, production.json y qa.json.

cuando estoy ejecutando SET NODE_ENV=production por ejemplo, se aplica a él pero la config todavía no está tomando la información del archivo correcto.

 var config = require('config'); var port = config.get('appPort'); 

Hice algunas lecturas y descubrí otro valor: NODE_CONFIG_ENV . He hecho algunas pruebas con:

 console.log('NODE_CONFIG_ENV: ' + config.util.getEnv('NODE_CONFIG_ENV')); console.log('NODE_ENV: ' + config.util.getEnv('NODE_ENV')); 

Y parece que NODE_CONFIG_ENV es responsable del problema porque parece que config está utilizando en su lugar para decidir qué archivo elegir.

Mi pregunta es ¿cómo puedo hacer que la config use NODE_ENV otra vez?
O si no es posible, ¿cómo puedo configurar NODE_CONFIG_ENV en NODE_CONFIG_ENV lugar?

Aquí hay una solución parcial,

 "scripts": { "dev": "SET NODE_CONFIG_ENV=development&&SET NODE_ENV=development&& nodemon server.js", "qa": "SET NODE__CONFIG_ENV=qa&&SET NODE_ENV=qa&& node server.js", "prod": "SET NODE_CONFIG_ENV=production&&SET NODE_ENV=production&& node server.js", } 

NODE_ENV en caso de que vuelva a usarlo, pero en general aún no supe qué causó que usara NODE_CONFIG_ENV lugar de NODE_ENV .

Edit: encontré la razón! Fue debido a otro paquete npm llamado cross-env que usé anteriormente.

    Intereting Posts