15

サーバーの環境変数を保持するために.envファイルを使用しています。これは、私がforeman startでサーバーを実行すると機能します。しかし、それはノーデモンでは機能しません。nodemonと.envファイルの使い方

サーバーを変更すると自動的に再起動するため、代わりにnodemonを使用したいと考えています。どのようにnodemonに.envファイルを扱えるようにすることができますか?

+0

[dotenv](https://www.npmjs.com/package/dotenv)パッケージで.envファイルを使用していて、本当に便利ですが、.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 $(cat .env) nodemon app.js 

はあなたが.envを変更した場合、それを再起動する必要がありますことに注意してください、次のコマンドで.envを使用して取得することができますし、それがあればそれを好きではないだろう.envファイルにはスペースがあります。

7

置き、次のコマンド

$ foreman run nodemon web.js 
+0

これは素晴らしい解決策ですもしあなたがしたくなければ 'Procfile'を持つよう強制しません。別の方法は、 'package.json'ファイルで' start' [script section](https://www.npmjs.org/doc/misc/npm-scripts.html)を使用することです。これは 'npm start 'と' nodemon'です。そして、プロダクションのために[Heroku](http://heroku.com)を使用すると、 'npm start'も使用する配備で' Procfile'が生成されます。 – twistedstream

0

HerokuのProcfile

変更使用してnodemonと一緒に.envファイルと実行職長で、ローカル設定変数:ウェブ:ノードがウェブにapp.js:nodemonアプリを.js

2

スレッドネクロマンシー!

grunt-envを使用して、heroku設定から環境変数を読み込みます。

+0

これは私の.envファイルを私のGruntfile.jsで使うのに役立ちました。まさに私が探していたもの。 –

5

最新のバージョンのNode(io.js 1.6以降)では、-rフラグを渡して起動時にモジュールを要求することができます。

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

これをインストールするNPMパッケージdotenvが必要です。これは、あなたが直接nodemonの--execを使用して.envをロードすることができます。

関連する問題