15

Sto utilizzando un file .env per contenere le variabili di ambiente per il server. Funziona se eseguo il server con l'avvio del caposquadra. Ma non funziona con nodemon.Come usare nodemon con i file .env?

Vorrei invece utilizzare nodemon perché si riavvia automaticamente quando si modifica il server. Come posso far funzionare nodemon con i file .env?

+0

Ho usato i file .env con il pacchetto [dotenv] (https://www.npmjs.com/package/dotenv) e molto utile ma ho problemi se cambio qualche variabile sul file .env e riavviare il processo (ad esempio utilizzando il comando rs su console) eventuali nuove modifiche sul file .env non vengono prese nell'account – rkmax

risposta

32

Ho una produzione Procfile con:

web: node web.js 

Così ho creato un file Procfile_dev con:

web: nodemon web.js 

E quando sono a ambiente di sviluppo corro:

$ foreman start -f Procfile_dev 

Funziona come un fascino e non influisce sulla produzione.

+0

Con Express il Procfile_dev sarebbe: 'web: nodemon./bin/www' – Ludder

12

È possibile ottenere nodemon utilizzare direttamente la .env con il seguente comando

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

essere consapevoli del fatto che dovrete riavviarlo se si apportano modifiche a .env e non vi piacerà, se ci sono spazi nel tuo file .env.

7

Mettere le variabili di configurazione locali nel file .env e Foreman corsa lungo con nodemon utilizzando il seguente comando

$ foreman run nodemon web.js 
+0

Questa è un'ottima soluzione poiché inoltre non ti obbliga ad avere un 'Procfile' se non ne vuoi uno. L'alternativa è usare la '' start' [sezione script] (https://www.npmjs.org/doc/misc/npm-scripts.html) nel tuo file 'package.json', che viene usato da' npm start 'e' nodemon'. E se usi [Heroku] (http://heroku.com) per la produzione, ora genera un 'Procfile' sulla distribuzione che usa anche' npm start'. – twistedstream

0

Heroku Procfile

Cambio: web: nodo app.js al web: nodemon app .js

2

Thread necromancy!

Utilizzare grunt-env per caricare le variabili ambientali dalla configurazione di heroku.

+0

Questo mi ha aiutato a usare il mio file .env nel mio Gruntfile.js. Esattamente quello che stavo cercando. –

5

Con le versioni recenti di Node (da io.js 1.6), è possibile passare il flag -r per richiedere un modulo all'avvio. Questo consente di caricare direttamente .env utilizzando nodemon di --exec:

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

Questo richiede di essere installato il pacchetto NPM dotenv.