Node.jsで開発しているプロジェクトでGruntを利用しているときに、タスクによって環境変数を定義したい場合、grunt-envを利用すると便利ですよ。という話。
npmでgrunt-envをインストール。
$ npm install grunt-env --save
次にGruntfile.jsを編集します。以下の様な具合。
module.exports = function(grunt) {
grunt.loadNpmTasks('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 とても便利。
最近のコメント