15

我正在使用.env文件來保存服務器的環境變量。如果我用工頭啓動運行服務器,這將起作用。但它不適用於nodemon。如何在.env文件中使用nodemon?

我想用nodemon,而不是因爲它在修改服務器自動重新啓動。我如何讓nodemon使用.env文件?

+0

我一直在使用.ENV與[dotenv(https://www.npmjs.com/package/dotenv)封裝,真正有用的文件,但我有一個麻煩,如果我改變對.ENV文件中的一些變量,重新啓動進程(例如,在控制檯上使用rs命令).env文件上的任何新更改都不會記入帳戶 – rkmax

回答

32

我有一個生產 Procfile有:

web: node web.js 

所以我創建了一個帶有Procfile_dev文件:

web: nodemon web.js 

,當我在開發環境我運行:

$ foreman start -f Procfile_dev 

它的工作原理就像一個魅力,不會影響生產。

+0

使用Express時,Procfile_dev將是:'web:nodemon。/ bin/www' – Ludder

12

你可以得到nodemon直接使用.ENV用下面的命令

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

要知道,你有,如果你更改.ENV重新啓動它,如果它不會喜歡它您的.env文件中有任何空格。

7

放入.ENV文件並運行工頭nodemon一起使用下面的命令

$ foreman run nodemon web.js 
+0

這是一個很好的解決方案,因爲它如果你不想要一個,也不會強制你有一個'Procfile'。另一種方法是在你的'package.json'文件中使用'start' [腳本部分](https://www.npmjs.org/doc/misc/npm-scripts.html),該文件由'npm start '和'nodemon'。如果您使用[Heroku](http://heroku.com)進行製作,它現在會在使用'npm start'的部署中生成'Procfile'。 – twistedstream

0

的Heroku Procfile

更改本地配置變量:網絡:節點app.js到網絡:nodemon應用.js文件

2

主題巫術!

使用grunt-env從您的Heroku的配置加載環境變量。

+0

這幫助我在我的Gruntfile.js中使用我的.env文件。正是我在找什麼。 –

5

隨着最新版本的節點(因爲io.js 1.6),你可以通過它的-r標誌需要在開始的模塊。這使您可以通過使用nodemon的--exec直接加載.env

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

這需要NPM包dotenv安裝。

相關問題