Gulp Env und Preprocess

In Grunt habe ich ein Plugin namens verwendetenv. Das würde es mir ermöglichen, eine Umgebung in einem bestimmten Build zu definieren. Ich hatte 3 Builds. Eine davon war DEV, bei der alle Dateien einzeln aufgeteilt wurden. PROD würde alles konzentrieren und RELEASE würde konzentrieren und hässlich machen. Ich möchte dasselbe in Gulp tun. Ich sehe einen Präprozessor für Gulp, aber nichts, um die Umgebung zu definieren.

Die Frage ist. Was kann ich machen? Natürlich möchte ich nicht immer alle JS-Dateien definieren, und ich möchte nicht drei verschiedene HTML-Seiten mit verschiedenen Skript-Tags.

In meinem HTML hätte ich so etwas:

<!-- @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 -->

Und meine Grunz-Plugins würden so aussehen:

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'
    }
},

Antworten auf die Frage(2)

Ihre Antwort auf die Frage