サーバーの環境変数を保持するために .env ファイルを使用しています。これは、サーバーを foreman start で実行すると機能します。しかし、nodemon では機能しません。
サーバーを変更すると自動的に再起動されるため、代わりに nodemon を使用したいと考えています。nodemon を .env ファイルで動作させるにはどうすればよいですか?
サーバーの環境変数を保持するために .env ファイルを使用しています。これは、サーバーを foreman start で実行すると機能します。しかし、nodemon では機能しません。
サーバーを変更すると自動的に再起動されるため、代わりに nodemon を使用したいと考えています。nodemon を .env ファイルで動作させるにはどうすればよいですか?
次のコマンドを使用して、nodemon に .env を直接使用させることができます。
$: env $(cat .env) nodemon app.js
.env に変更を加えた場合は再起動する必要があり、.env ファイルにスペースがあると気に入らないことに注意してください。
Node の最近のバージョン (io.js 1.6 以降) では、-r
開始時にモジュールを要求するフラグを渡すことができます。.env
これにより、nodemon の を使用して直接ロードできます--exec
。
nodemon --exec 'node -r dotenv/config'
これには、npm パッケージdotenv
をインストールする必要があります。
ローカル構成変数を .env ファイルに配置し、次のコマンドを使用して、nodemon と一緒に foreman を実行します。
$ foreman run nodemon web.js
これまでのところ、これは私にとってはかなりうまくいっています。
nodemon -w . -w .env index.js
仕組み:
" -w . " nodemon に現在のディレクトリ内のファイルを監視するよう指示する
" -w .env " nodemon に .env ファイルを監視するよう指示する
" index.js " は、変更が発生したときに実行するファイルですなんでも)
糸のネクロマンシー!
grunt-envを使用して、heroku 構成から環境変数をロードします。
Heroku プロファイル
変更: web: node app.js から web: nodemon app.js
dotenv パッケージと宣言された .env 変数を環境にロードするには、次の操作を実行できます。
nodemon -r dotenv/config myapp.js