2017-02-02 14 views
0

プラットフォーム:WindowsPM2とNode:なぜenv変数が未定義になっていますか?

私がやりたいことは簡単です:pm2を開始し(.jsonスクリプトなし)、ノードWebアプリケーション(ExpressJS)がenvにアクセスできるようにします。変数。

私は設定を行うときに

> set MODE=test 

とは

> npm start 

は私が望んでいたとおりに正確に '試験' を私に与えprocess.env.MODEにアクセスすることができません。

今私はpm2でこれを行う方法を理解できないようです。もし私

> set MODE=test 

、その後、私はprocess.env.MODEは私も

pm2 start ./bin/www -x -- --MODE=test 

set MODE="test" & pm2 start ./bin/www 
を試してみました

未定義で取得

pm2 start ./bin/www 

を行います

set MODE=test & pm2 start ./bin/www 

何も問題ありません。私は間違って何をしていますか?代わりに私は何をすべきですか?

+0

私は 'pm2'が新しいシェルを起動しますので、それがあると思います。 'pm2 start env MODE = test。/ bin/www'を試してみてくださいね。 – georoot

答えて

0

Windowsでは、SETは現在のCMDセッションで環境変数を設定します。 pm2を実行しているのと同じCMDセッションで環境変数を設定する必要があるかもしれません。

代わりに、永続的な環境変数を設定するためにSETXを使用してください。すべてのCMDセッションでSETXを使用して環境変数を設定できるようにするには、CMDセッションを閉じて再オープンする必要があります。

は参照してください:https://superuser.com/questions/916649/what-is-the-difference-between-setx-and-set-in-environment-variables-in-windows

関連する問題