15

Estoy usando un archivo .env para contener variables de entorno para el servidor. Esto funciona si ejecuto el servidor con el capataz de inicio. Pero no funciona con nodemon.¿Cómo usar nodemon con archivos .env?

Me gustaría utilizar nodemon en su lugar porque se reinicia automáticamente cuando modifica el servidor. ¿Cómo puedo hacer que nodemon trabaje con archivos .env?

+0

He estado usando archivos .env con el paquete [dotenv] (https://www.npmjs.com/package/dotenv) y realmente útil, pero tengo un problema si cambio alguna variable en el archivo .env y reinicie el proceso (por ejemplo, utilizando el comando rs en la consola) los nuevos cambios en el archivo .env no se toman en la cuenta – rkmax

Respuesta

32

Tengo un producción Procfile con:

web: node web.js 

Así que he creado un archivo Procfile_dev con:

web: nodemon web.js 

Y cuando estoy en el entorno de desarrollo de corro:

$ foreman start -f Procfile_dev 

Funciona como un amuleto y no afecta la producción.

+0

Con Express el archivo de proceso sería: 'web: nodemon./bin/www' – Ludder

12

Puede obtener nodemon a utilizar directamente el .env con el siguiente comando

$: env $(cat .env) nodemon app.js 

ser consciente de que tendrá que reiniciar si se realizan cambios a .env y no va a gustar si hay espacios en su archivo .env.

7

lugar las variables de configuración local en el archivo .env y capataz carrera junto con nodemon utilizando el siguiente comando

$ foreman run nodemon web.js 
+0

Esta es una gran solución ya que tampoco te obliga a tener un 'Procfile' si no quieres uno. La alternativa es usar 'begin' [script section] (https://www.npmjs.org/doc/misc/npm-scripts.html) en su archivo' package.json', que es utilizado por 'npm start 'y' nodemon'. Y si usa [Heroku] (http://heroku.com) para la producción, ahora genera un 'Procfile' en la implementación que también utiliza' npm start'. – twistedstream

0

Heroku Procfile

Cambio: Web: nodo app.js a la web: aplicación nodemon .js

2

Hilo nigromancia!

Utilice grunt-env para cargar las variables de entorno de su configuración de heroku.

+0

Esto me ayudó a usar mi archivo .env en mi Gruntfile.js. Exactamente lo que estaba buscando. –

5

Con las versiones recientes de Node (desde io.js 1.6), puede pasarle el indicador -r para requerir un módulo en el inicio. Esto le permite cargar directamente .env mediante el uso de nodemon --exec:

nodemon --exec 'node -r dotenv/config' 

Esto requiere el paquete NPM dotenv para ser instalado.

Cuestiones relacionadas