W Grnt użyłem wtyczki o nazwie env. To pozwoliłoby mi zdefiniować środowisko w konkretnej kompilacji. Miałem 3 kompilacje. Jednym z nich był DEV, który wykorzystywał wszystkie pliki podzielone pojedynczo. PROD zgodzi się na wszystko, a RELEASE będzie konkatować i ugodzić. Szukam tego samego w Gulp. Widzę preprocesor dla Gulpa, ale nic, co mogłoby zdefiniować środowisko.Gulp Env and Preprocess
Pytanie jest. Co mogę zrobić? Oczywiście nie chcę przez cały czas definiować wszystkich plików JS i nie chcę 3 różnych stron HTML z różnymi znacznikami skryptów.
W moim HTML Chciałbym mieć coś takiego:
<!-- @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 -->
i moich wtyczek Grunt będzie wyglądać następująco:
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'
}
},
Dzięki wtyczce łyk-data ta została uproszczona bardzo. – user1167442