Definir e executar tarefas Gulp para cada ambiente em tempo real

Em um projeto recente que estávamos implantando no parse.com usando o Gulp, essa ideia foi muito útil:

var gulp     = require('gulp');
var path = require('path');
var sequence = require('run-sequence');

var environments = ['mine', 'beta', 'prod', 'test'];

var deploy = function (environment, done) {

var dir = path.join(__dirname, '..', 'environments', environment);

gulp
.task('config', function () {

// The config stuff
});

gulp
.task('minify', function () {

// The minify stuff
});

sequence
('clean', 'config', 'minify', 'deploy', done);
};

environments
.forEach(function (environment) {

gulp
.task('deploy:' + environment, function (done) {

deploy
(environment, done);
});
});

Então, basicamente, as tarefas não estão lá até que você execute uma tarefa “principal” como deploy:beta.

O que você acha?