Env e Pré-processo de Gole

No Grunt, eu costumava usar um plugin chamadoenv. Isso me permitiria definir um ambiente em compilação específica. Eu tinha 3 builds. Um deles era o DEV, que usaria todos os arquivos separados individualmente. O PROD concatiaria tudo e o LANÇAMENTO concatiaria e aumentaria. Eu estou olhando para fazer o mesmo em Gulp. Eu vejo um pré-processador para o Gulp, mas nada para definir o ambiente.

A questão é. O que eu posso fazer? Obviamente, não quero definir todos os arquivos JS o tempo todo e não quero três páginas HTML diferentes com diferentes tags de script.

No meu HTML, eu teria algo parecido com isto:

<!-- @if NODE_ENV == 'DEVELOPMENT' -->
<script src="js/example1.js" type="text/javascript"></script>
<script src="js/example2.js" type="text/javascript"></script>
<script src="js/example3.js" type="text/javascript"></script>
<!-- @endif -->

<!-- @if NODE_ENV == 'PRODUCTION' -->
<script src="js/project.js" type="text/javascript"></script>
<!-- @endif -->

<!-- @if NODE_ENV == 'RELEASE' -->
<script src="js/project.min.js" type="text/javascript"></script>
<!-- @endif -->

E meus plugins grunhidos ficariam assim:

env: {
    dev: {
        NODE_ENV: 'DEVELOPMENT'
    },
    prod: {
        NODE_ENV: 'PRODUCTION'
    },
    release: {
        NODE_ENV: 'RELEASE'
    }
},
preprocess: {
    options: {
        context: {
            name: '<%= pkg.outputName %>',
            version: '<%= pkg.version %>',
            port: '<%= pkg.port %>'
        }
    },
    dev: {
        src: 'index.html',
        dest: '<%= pkg.outputFolder %>/index.html'
    },
    prod: {
        src: 'index.html',
        dest: '<%= pkg.outputFolder %>/index.html'
    },
    release: {
        src: 'index.html',
        dest: '<%= pkg.outputFolder %>/index.html'
    }
},

questionAnswers(2)

yourAnswerToTheQuestion