Gruntタスクで環境変数を定義する(grunt-env)
Node.jsで開発しているプロジェクトでGruntを利用しているときに、タスクによって環境変数を定義したい場合、grunt-envを利用すると便利ですよ。という話。
npmでgrunt-envをインストール。
$ npm install grunt-env --save
次にGruntfile.jsを編集します。以下の様な具合。
module.exports = function(grunt) { grunt.loadNpmTasks('grunt-env'); // grunt-env追加 grunt.initConfig({ env: { dev: { NODE_ENV : 'development' }, production: { NODE_ENV : 'production' } } });
上の様に定義した上で、例えば既に、server
というタスクにコンパイル及びNode.jsの起動のタスクが登録されていた場合、それらのタスクの前に env:dev
というタスクを加えると
NODE_ENV=development
という環境変数を定義した上でコンパイルとNode.jsの起動が行われます。具体的には以下の様な形でregisterTaskの修正を行います。
// 'env:dev' を追加 grunt.registerTask('server', ['env:dev', 'compile', 'runNode']);
こうすることで、gruntでタスクを実行するだけで、process.env.NODE_ENV
で参照できる環境変数が定義されます。
grunt-env とても便利。