In Grunt verwendete ich ein Plugin namens env. Das würde mir erlauben, eine Umgebung in einem bestimmten Build zu definieren. Ich hatte 3 Builds. Eine war DEV, die alle Dateien einzeln aufgeteilt verwenden würde. PROD würde alles zusammenfassen, und RELEASE würde concat und uglify. Ich möchte dasselbe in Gulp machen. Ich sehe einen Präprozessor für Gulp, aber nichts, um die Umgebung zu definieren.Gulp Env und Preprocess
Die Frage ist. Was kann ich tun? Offensichtlich möchte ich nicht alle JS-Dateien die ganze Zeit definieren, und ich möchte nicht 3 verschiedene HTML-Seiten mit verschiedenen Skript-Tags.
In meinem HTML würde ich so etwas wie dieses:
<!-- @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 mein Grunzen Plugins würde wie folgt 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'
}
},
Dank der großen Schluck-Daten-Plugin wie diese Dinge zu tun, dies wurde vereinfacht sehr. – user1167442