2013-03-21 31 views
25

私は、プロジェクトを単にnode server.jsから、Gruntを使って移行しています。GruntのNodeJS環境変数

私はwebstormから直接アプリケーションを実行するために使用されていましたが、環境変数が設定されていました。

グランツでどうすればいいですか?

私はwebstorm(窓)からうなり声を実行するか、または(明示的)イサキを実行しているときにENVはvarsのセットアップするか必要

Herokuのは、すでに私のenv VARSを設定するの面倒を見るために配備する場合、これは問題ではありません。

答えて

47

イサキ-ENVプラグインを使用しますので、あなたの場合

grunt.registerTask('default', ['env', 'another-task']); 

:あなたは、おそらくいくつかのデフォルト・タスクを定義しますあなたのgruntfileで

grunt.initConfig({ 
    env : { 
    options : { 
     //Shared Options Hash 
    }, 
    dev : { 
     NODE_ENV : 'development', 
     DEST  : 'temp' 
    } 
    }, 
    'another-task': {} 
}); 

https://npmjs.org/package/grunt-env

をし、あなたのコンフィグを設定あなたのenv-varsが設定され、次に 'another-task'が実行されるときに 'grunt default'を実行する

あなたはgrunt.optionを使用することができ、コマンドラインオプションを経て現在の環境を指定する場合:

grunt.initConfig({ 
    env : { 
    options : { 
     //Shared Options Hash 
    }, 
    dev : { 
     NODE_ENV : grunt.option('environment') || 'development', 
     DEST  : 'temp' 
    } 
    }, 

この例では、あなたが--environment=productionとあなたの単調なタスクを呼び出す場合、生産はそうでない開発が設定され、設定されます

+0

jsアプリケーション(Emberなど)でenv変数にアクセスする必要がある場合は、そのパターンを使用できます。https://stackoverflow.com/questions/20742882/how-set-get-environment-specific-variable-in -a-yeoman-ember-app/20974746#20974746 – borisrorsvort

+1

Upvotedが早すぎて、正しくダウンボートするのが遅すぎた。 Windows(cmdまたはps)では動作しません。 – rainabba

+0

ライブラリは、あなたの設定データでprocess.envを拡張します。私はWindows上のnode.jsに慣れていませんが、なぜ動作してはいけないのかわかりません... – hereandnow78