„Gulp.js“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
K wf |
Linkvorschlag-Funktion: 2 Links hinzugefügt. |
||
(7 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:gulp.js}} |
|||
{{Infobox Software |
{{Infobox Software |
||
| Logo = |
| Logo = |
||
Zeile 4: | Zeile 5: | ||
| Betriebssystem = [[Plattformunabhängigkeit|plattformübergreifend]] |
| Betriebssystem = [[Plattformunabhängigkeit|plattformübergreifend]] |
||
| Programmiersprache = [[JavaScript]] |
| Programmiersprache = [[JavaScript]] |
||
| Kategorie = [[ |
| Kategorie = [[Build-System]] |
||
| Lizenz = [[MIT-Lizenz]]<ref>{{Internetquelle|url=https://github.com/gulpjs/gulp/blob/master/LICENSE|titel=License auf github.com|sprache=en|zugriff=2016-05-30}}</ref> |
| Lizenz = [[MIT-Lizenz]]<ref>{{Internetquelle |url=https://github.com/gulpjs/gulp/blob/master/LICENSE |titel=License auf github.com |sprache=en |zugriff=2016-05-30}}</ref> |
||
| Website = [http://gulpjs.com/ www.gulpjs.com/] |
| Website = [http://gulpjs.com/ www.gulpjs.com/] |
||
}} |
}} |
||
'''gulp.js''' ist |
'''gulp.js''' ist eine [[Software]], basierend auf [[Node.js]], um verschiedene Aufgaben im [[Webentwicklung]]sprozess zu automatisieren ([[Build-System]]).<ref>{{Literatur |Autor=Joshua Barnett |Hrsg=University of East Anglia |Titel=Building a Cross-Platform Mobile Game with HTML5 |Verlag= |Ort= |Datum=2014 |Online=http://www.caffeinatednightmare.com/mindflip/}}</ref><ref>{{Literatur |Autor=Artemij Fedosejev |Titel=React.js Essentials |Auflage=1 |Verlag=Packt Publishing |Ort=Birmingham |Datum=2015 |ISBN=978-1-78355-162-0 |Kapitel=Installing Powerful Tools for Your Project |Seiten=12–14}}</ref> So kann gulp zum Beispiel genutzt werden, um [[Hypertext Markup Language|HTML]], [[JavaScript]] und [[Cascading Style Sheets|CSS]] zu verkleinern, [[Sass (Stylesheet-Sprache)|SCSS]] in CSS umzuwandeln, Bilder zu optimieren und Dateien in einen „[[Distribution (Software)|dist]]“-Ordner zu kopieren. Außerdem kann gulp dazu genutzt werden, um den [[Webbrowser]] automatisch zu aktualisieren oder den [[Webserver]] automatisch zu starten.<ref>{{Literatur |Autor=Henri Levälampi |Hrsg=Helsinki Metropolia University of Applied Sciences |Titel=Modular Web Development Framework |Verlag= |Ort=Helsinki |Datum=2015-12-04}}</ref> |
||
== Installation == |
== Installation == |
||
Gulp benötigt [[Node.js]] und wird über den [[Node Package Manager]] installiert. Hierfür wird der Befehl <code>{{lang|en|npm install --global gulp-cli}}</code> in der [[Shell (Betriebssystem)|Shell]] ausgeführt.<ref>{{Internetquelle|url=https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md|titel=gulp |
Gulp benötigt [[Node.js]] und wird über den [[Node Package Manager]] installiert. Hierfür wird der Befehl <code>{{lang|en|npm install --global gulp-cli}}</code> in der [[Shell (Betriebssystem)|Shell]] ausgeführt.<ref>{{Internetquelle |url=https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md |titel=gulp – Getting Started |werk=gulp.js |sprache=en |zugriff=2016-05-28}}</ref> |
||
== Funktionsweise == |
== Funktionsweise == |
||
Zeile 18: | Zeile 19: | ||
Um mit gulp arbeiten zu können, muss ein sogenanntes gulpfile angelegt werden. Bei dem gulpfile handelt es sich um eine [[JavaScript]]-Datei mit dem Namen „gulpfile.js“. In diesem File werden sogenannte Tasks in JavaScript definiert. Diese gulp-Tasks werden über die Shell ausgeführt. Der Befehl <code>{{lang|en|gulp}}</code>startet den Default-Task. Mit <code>{{lang|en|gulp <taskname>}}</code> wird der Task mit dem jeweiligen taskname ausgeführt. |
Um mit gulp arbeiten zu können, muss ein sogenanntes gulpfile angelegt werden. Bei dem gulpfile handelt es sich um eine [[JavaScript]]-Datei mit dem Namen „gulpfile.js“. In diesem File werden sogenannte Tasks in JavaScript definiert. Diese gulp-Tasks werden über die Shell ausgeführt. Der Befehl <code>{{lang|en|gulp}}</code>startet den Default-Task. Mit <code>{{lang|en|gulp <taskname>}}</code> wird der Task mit dem jeweiligen taskname ausgeführt. |
||
Zusätzlich gibt es eine Vielzahl an [http://gulpjs.com/plugins Plugins] |
Zusätzlich gibt es eine Vielzahl an [[Plug-in]]s für gulp.<ref>[http://gulpjs.com/plugins Plugins]</ref> |
||
== gulpfile.js == |
== gulpfile.js == |
||
Im ersten Schritt müssen alle benötigten Module in der gulpfile.js definiert werden.<syntaxhighlight lang="javascript"> |
Im ersten Schritt müssen alle benötigten Module in der gulpfile.js definiert werden. |
||
<syntaxhighlight lang="javascript"> |
|||
// Module definieren |
// Module definieren |
||
var gulp = require('gulp'); |
var gulp = require('gulp'); |
||
var gutil = require('gulp-util'); |
var gutil = require('gulp-util'); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Im nächsten Schritt können dann die Tasks erstellt werden. Ein gulp-Task wird mittels ''gulp.task'' definiert und bekommt einen Namen für den Task als ersten Parameter und als zweiten Parameter eine Funktion. |
Im nächsten Schritt können dann die Tasks erstellt werden. Ein gulp-Task wird mittels ''gulp.task'' definiert und bekommt einen Namen für den Task als ersten Parameter und als zweiten Parameter eine Funktion. |
||
Das folgende Beispiel zeigt die Erstellung eines gulp-Tasks. Der erste Parameter ''taskname'' ist verpflichtend und gibt den Namen vor, mit dem der Task in der Shell ausgeführt werden kann.<ref>{{Internetquelle|url=https://github.com/gulpjs/gulp/blob/4.0/docs/API.md|titel=gulp API docs |
Das folgende Beispiel zeigt die Erstellung eines gulp-Tasks. Der erste Parameter ''taskname'' ist verpflichtend und gibt den Namen vor, mit dem der Task in der Shell ausgeführt werden kann.<ref>{{Internetquelle |url=https://github.com/gulpjs/gulp/blob/4.0/docs/API.md |titel=gulp API docs |werk=gulp.js |datum= |sprache=en |zugriff=2024-03-16 |archiv-url=https://web.archive.org/web/20170306202555/https://github.com/gulpjs/gulp/blob/4.0/docs/API.md |archiv-datum=2017-03-06 }}</ref> |
||
<syntaxhighlight lang="javascript"> |
|||
gulp.task('taskname', function(){ |
gulp.task('taskname', function(){ |
||
// tu etwas |
// tu etwas |
||
Zeile 35: | Zeile 37: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
Alternativ kann ein Task erstellt werden, der mehrere vordefinierte Funktionen ausführt. Diese werden als zweiter Parameter mittels eines Arrays übergeben.<syntaxhighlight lang="javascript"> |
Alternativ kann ein Task erstellt werden, der mehrere vordefinierte Funktionen ausführt. Diese werden als zweiter Parameter mittels eines Arrays übergeben. |
||
<syntaxhighlight lang="javascript"> |
|||
function fn1 () { |
function fn1 () { |
||
// tu etwas |
// tu etwas |
||
Zeile 49: | Zeile 52: | ||
=== Default-Task === |
=== Default-Task === |
||
Der Default-Task ist jener Task, der mittels Eingabe des Befehls <code>{{lang|en|gulp}}</code> in der Shell ausgeführt wird. In diesem Fall führt der Default-Task nichts aus.<syntaxhighlight lang="javascript"> |
Der Default-Task ist jener Task, der mittels Eingabe des Befehls <code>{{lang|en|gulp}}</code> in der Shell ausgeführt wird. In diesem Fall führt der Default-Task nichts aus. |
||
<syntaxhighlight lang="javascript"> |
|||
// gulp default task |
// gulp default task |
||
gulp.task('default', ['']); |
gulp.task('default', ['']); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Zeile 60: | Zeile 63: | ||
Für das nachfolgende Beispiel wird das ''gulp-imagemin Plugin''<ref>[https://www.npmjs.com/package/gulp-imagemin/ gulp-imagemin Plugin]</ref> benötigt. Hierfür wird durch Ausführen des Befehles <code>{{lang|en|npm install --save-dev gulp-imagemin}}</code> in der Shell das benötigte Plugin installiert. |
Für das nachfolgende Beispiel wird das ''gulp-imagemin Plugin''<ref>[https://www.npmjs.com/package/gulp-imagemin/ gulp-imagemin Plugin]</ref> benötigt. Hierfür wird durch Ausführen des Befehles <code>{{lang|en|npm install --save-dev gulp-imagemin}}</code> in der Shell das benötigte Plugin installiert. |
||
Anschließend muss das Modul am Anfang der ''gulpfile.js'' definiert werden:<syntaxhighlight lang="javascript"> |
Anschließend muss das Modul am Anfang der ''gulpfile.js'' definiert werden: |
||
<syntaxhighlight lang="javascript"> |
|||
var imagemin = require('gulp-imagemin'); |
var imagemin = require('gulp-imagemin'); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Der nachfolgende Image-Task führt eine Optimierung von Bildern durch. <code>gulp.src()</code> holt sich alle Bilder mit der Endung .png, .gif oder .jpg aus dem Verzeichnis ''<nowiki/>'images-orig/'<nowiki/>''. <code>.pipe(imagemin())</code> schleußt die gefundenen Bilder durch den Optimierungsprozess durch und mit <code>.pipe(gulp.dest())</code> werden die optimierten Bilder danach ins Verzeichnis ''<nowiki/>'images/'<nowiki/>'' gespeichert. Ohne <code>gulp.dest()</code> würden die Bilder zwar optimiert, jedoch nicht abgespeichert werden.<ref>{{Internetquelle|url=http://magazin.phlow.de/webdesign/gulp/|titel=Durchstarten mit Gulp.js – Websites optimieren, Arbeitsabläufe automatisieren| |
Der nachfolgende Image-Task führt eine Optimierung von Bildern durch. <code>gulp.src()</code> holt sich alle Bilder mit der Endung .png, .gif oder .jpg aus dem Verzeichnis ''<nowiki />'images-orig/'<nowiki />''. <code>.pipe(imagemin())</code> schleußt die gefundenen Bilder durch den Optimierungsprozess durch und mit <code>.pipe(gulp.dest())</code> werden die optimierten Bilder danach ins Verzeichnis ''<nowiki />'images/'<nowiki />'' gespeichert. Ohne <code>gulp.dest()</code> würden die Bilder zwar optimiert, jedoch nicht abgespeichert werden.<ref>{{Internetquelle |url=http://magazin.phlow.de/webdesign/gulp/ |titel=Durchstarten mit Gulp.js – Websites optimieren, Arbeitsabläufe automatisieren |datum= |zugriff=2024-03-16 |archiv-url=https://web.archive.org/web/20170616233539/http://magazin.phlow.de/webdesign/gulp/ |archiv-datum=2017-06-16 }}</ref> Da wir die optimierten Bilder in einen anderen Ordner speichern, bleiben uns die originalen Bilder erhalten. |
||
<syntaxhighlight lang="javascript"> |
|||
// images task |
// images task |
||
gulp.task('images', function () { |
gulp.task('images', function () { |
||
Zeile 71: | Zeile 76: | ||
.pipe(gulp.dest('images/')); |
.pipe(gulp.dest('images/')); |
||
}); |
}); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=== Scripts-Task === |
=== Scripts-Task === |
||
Im folgenden Beispiel werden sämtliche JavaScript-Dateien aus dem Verzeichnis ''<nowiki/>'scripts/'<nowiki/>'' mit <code>.pipe(uglify())</code> optimiert und mit <code>gulp.dest('scripts/')</code> wieder überschrieben.<ref>{{Internetquelle|url=https://liechtenecker.at/front-end-workflow-mit-gulp/|titel=Front-end Workflow mit Gulp |
Im folgenden Beispiel werden sämtliche JavaScript-Dateien aus dem Verzeichnis ''<nowiki />'scripts/'<nowiki />'' mit <code>.pipe(uglify())</code> optimiert und mit <code>gulp.dest('scripts/')</code> wieder überschrieben.<ref>{{Internetquelle |url=https://liechtenecker.at/front-end-workflow-mit-gulp/ |titel=Front-end Workflow mit Gulp |datum= |zugriff=2016-05-30}}</ref> Hierfür muss zuvor wieder das benötigte ''gulp-uglify Plugin''<ref>[https://www.npmjs.com/package/gulp-uglify gulp-uglify Plugin]</ref> über ''npm'' installiert und das Modul am Anfang der ''gulpfile.js'' definiert werden. |
||
<syntaxhighlight lang="javascript"> |
|||
// Script task |
// Script task |
||
gulp.task('scripts', function() { |
gulp.task('scripts', function() { |
||
Zeile 85: | Zeile 90: | ||
=== Watch-Task === |
=== Watch-Task === |
||
Der Watch-Task dient dazu, um auf Änderungen von Dateien zu reagieren. In dem nachfolgenden Beispiel werden die Tasks mit den Namen ''scripts'' und ''images'' aufgerufen, falls sich JavaScript-Dateien oder Bilder in den angegebenen Verzeichnissen ändern sollten.<syntaxhighlight lang="javascript"> |
Der Watch-Task dient dazu, um auf Änderungen von Dateien zu reagieren. In dem nachfolgenden Beispiel werden die Tasks mit den Namen ''scripts'' und ''images'' aufgerufen, falls sich JavaScript-Dateien oder Bilder in den angegebenen Verzeichnissen ändern sollten. |
||
<syntaxhighlight lang="javascript"> |
|||
// Rerun the task when a file changes |
// Rerun the task when a file changes |
||
gulp.task('watch', function () { |
gulp.task('watch', function () { |
||
Zeile 91: | Zeile 97: | ||
gulp.watch('images-orig/**', ['images']); |
gulp.watch('images-orig/**', ['images']); |
||
}); |
}); |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Des Weiteren besteht die Möglichkeit, eine Aktualisierung des Browserinhaltes mittels des Watch-Tasks zu bewerkstelligen.<ref>{{Internetquelle|url=https://www.browsersync.io/docs/gulp/|titel=Browsersync + Gulp.js |
Des Weiteren besteht die Möglichkeit, eine Aktualisierung des Browserinhaltes mittels des Watch-Tasks zu bewerkstelligen.<ref>{{Internetquelle |url=https://www.browsersync.io/docs/gulp/ |titel=Browsersync + Gulp.js |datum= |zugriff=2016-05-30}}</ref> Hierfür gibt es zahlreiche Möglichkeiten und Plugins. |
||
== Literatur == |
== Literatur == |
||
* {{Literatur |
|||
|Autor=Jed Mao, Maximilian Schmitt, Tomasz Stryjewski, Cary Landholt, William Lubelski |
|||
|Titel=Developing a Gulp Edge. The Streaming Build System |
|||
|Verlag=Bleeding Edge Press |
|||
|Datum=2014 |
|||
|ISBN=978-1-939902-14-6 |
|||
|Online=[http://proquest.tech.safaribooksonline.de/9781939902146 proquest.tech.safaribooksonline.de]}} |
|||
* {{Literatur | Autor=Den Odell | Titel=Pro JavaScript Development Coding, Capabilities, and Tooling | Auflage=1. | Verlag=Apress | Jahr=2014 |Kapitel=Build Tools and Automation|Seiten=400-408| ISBN=978-1-4302-6268-8 }} |
|||
* {{Literatur |
|||
|Autor=Den Odell |
|||
|Titel=Pro JavaScript Development Coding, Capabilities, and Tooling |
|||
|Auflage=1. |
|||
|Verlag=Apress |
|||
|Datum=2014 |
|||
|ISBN=978-1-4302-6268-8 |
|||
|Kapitel=Build Tools and Automation |
|||
|Seiten=400–408}} |
|||
== Weblinks == |
== Weblinks == |
||
Zeile 113: | Zeile 131: | ||
[[Kategorie:Freie Software]] |
[[Kategorie:Freie Software]] |
||
[[Kategorie:ECMAScript]] |
[[Kategorie:ECMAScript]] |
||
[[Kategorie:Build-Management]] |
Aktuelle Version vom 13. Januar 2025, 19:27 Uhr
Gulp.js
| |
---|---|
![]() | |
Basisdaten
| |
Entwickler | Fractal und Mitwirkende der GitHub-Community |
Aktuelle Version | 5.0.0[1][2] (29. März 2024) |
Betriebssystem | plattformübergreifend |
Programmiersprache | JavaScript |
Kategorie | Build-System |
Lizenz | MIT-Lizenz[3] |
www.gulpjs.com/ |
gulp.js ist eine Software, basierend auf Node.js, um verschiedene Aufgaben im Webentwicklungsprozess zu automatisieren (Build-System).[4][5] So kann gulp zum Beispiel genutzt werden, um HTML, JavaScript und CSS zu verkleinern, SCSS in CSS umzuwandeln, Bilder zu optimieren und Dateien in einen „dist“-Ordner zu kopieren. Außerdem kann gulp dazu genutzt werden, um den Webbrowser automatisch zu aktualisieren oder den Webserver automatisch zu starten.[6]
Installation
[Bearbeiten | Quelltext bearbeiten]Gulp benötigt Node.js und wird über den Node Package Manager installiert. Hierfür wird der Befehl npm install --global gulp-cli
in der Shell ausgeführt.[7]
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]Um mit gulp arbeiten zu können, muss ein sogenanntes gulpfile angelegt werden. Bei dem gulpfile handelt es sich um eine JavaScript-Datei mit dem Namen „gulpfile.js“. In diesem File werden sogenannte Tasks in JavaScript definiert. Diese gulp-Tasks werden über die Shell ausgeführt. Der Befehl gulp
startet den Default-Task. Mit gulp <taskname>
wird der Task mit dem jeweiligen taskname ausgeführt.
Zusätzlich gibt es eine Vielzahl an Plug-ins für gulp.[8]
gulpfile.js
[Bearbeiten | Quelltext bearbeiten]Im ersten Schritt müssen alle benötigten Module in der gulpfile.js definiert werden.
// Module definieren
var gulp = require('gulp');
var gutil = require('gulp-util');
Im nächsten Schritt können dann die Tasks erstellt werden. Ein gulp-Task wird mittels gulp.task definiert und bekommt einen Namen für den Task als ersten Parameter und als zweiten Parameter eine Funktion.
Das folgende Beispiel zeigt die Erstellung eines gulp-Tasks. Der erste Parameter taskname ist verpflichtend und gibt den Namen vor, mit dem der Task in der Shell ausgeführt werden kann.[9]
gulp.task('taskname', function(){
// tu etwas
});
Alternativ kann ein Task erstellt werden, der mehrere vordefinierte Funktionen ausführt. Diese werden als zweiter Parameter mittels eines Arrays übergeben.
function fn1 () {
// tu etwas
}
function fn2 () {
// tu etwas anderes
}
// Task mit Array an Funktionsnamen
gulp.task('taskname',['fn1', 'fn2']);
Default-Task
[Bearbeiten | Quelltext bearbeiten]Der Default-Task ist jener Task, der mittels Eingabe des Befehls gulp
in der Shell ausgeführt wird. In diesem Fall führt der Default-Task nichts aus.
// gulp default task
gulp.task('default', ['']);
Beispiel-Tasks
[Bearbeiten | Quelltext bearbeiten]Image-Task
[Bearbeiten | Quelltext bearbeiten]Für das nachfolgende Beispiel wird das gulp-imagemin Plugin[10] benötigt. Hierfür wird durch Ausführen des Befehles npm install --save-dev gulp-imagemin
in der Shell das benötigte Plugin installiert.
Anschließend muss das Modul am Anfang der gulpfile.js definiert werden:
var imagemin = require('gulp-imagemin');
Der nachfolgende Image-Task führt eine Optimierung von Bildern durch. gulp.src()
holt sich alle Bilder mit der Endung .png, .gif oder .jpg aus dem Verzeichnis 'images-orig/'. .pipe(imagemin())
schleußt die gefundenen Bilder durch den Optimierungsprozess durch und mit .pipe(gulp.dest())
werden die optimierten Bilder danach ins Verzeichnis 'images/' gespeichert. Ohne gulp.dest()
würden die Bilder zwar optimiert, jedoch nicht abgespeichert werden.[11] Da wir die optimierten Bilder in einen anderen Ordner speichern, bleiben uns die originalen Bilder erhalten.
// images task
gulp.task('images', function () {
gulp.src('images-orig/*.{png,gif,jpg}')
.pipe(imagemin())
.pipe(gulp.dest('images/'));
});
Scripts-Task
[Bearbeiten | Quelltext bearbeiten]Im folgenden Beispiel werden sämtliche JavaScript-Dateien aus dem Verzeichnis 'scripts/' mit .pipe(uglify())
optimiert und mit gulp.dest('scripts/')
wieder überschrieben.[12] Hierfür muss zuvor wieder das benötigte gulp-uglify Plugin[13] über npm installiert und das Modul am Anfang der gulpfile.js definiert werden.
// Script task
gulp.task('scripts', function() {
gulp.src('scripts/*.js')
.pipe(uglify())
.pipe(gulp.dest('scripts/'));
});
Watch-Task
[Bearbeiten | Quelltext bearbeiten]Der Watch-Task dient dazu, um auf Änderungen von Dateien zu reagieren. In dem nachfolgenden Beispiel werden die Tasks mit den Namen scripts und images aufgerufen, falls sich JavaScript-Dateien oder Bilder in den angegebenen Verzeichnissen ändern sollten.
// Rerun the task when a file changes
gulp.task('watch', function () {
gulp.watch('scripts/**.js', ['scripts']);
gulp.watch('images-orig/**', ['images']);
});
Des Weiteren besteht die Möglichkeit, eine Aktualisierung des Browserinhaltes mittels des Watch-Tasks zu bewerkstelligen.[14] Hierfür gibt es zahlreiche Möglichkeiten und Plugins.
Literatur
[Bearbeiten | Quelltext bearbeiten]- Jed Mao, Maximilian Schmitt, Tomasz Stryjewski, Cary Landholt, William Lubelski: Developing a Gulp Edge. The Streaming Build System. Bleeding Edge Press, 2014, ISBN 978-1-939902-14-6 (proquest.tech.safaribooksonline.de).
- Den Odell: Pro JavaScript Development Coding, Capabilities, and Tooling. 1. Auflage. Apress, 2014, ISBN 978-1-4302-6268-8, Build Tools and Automation, S. 400–408.
Weblinks
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Release 5.0.0. 29. März 2024 (abgerufen am 2. April 2024).
- ↑ registry.npmjs.com. In: npmjs. (abgerufen am 2. April 2024).
- ↑ License auf github.com. Abgerufen am 30. Mai 2016 (englisch).
- ↑ Joshua Barnett: Building a Cross-Platform Mobile Game with HTML5. Hrsg.: University of East Anglia. 2014 (caffeinatednightmare.com).
- ↑ Artemij Fedosejev: React.js Essentials. 1. Auflage. Packt Publishing, Birmingham 2015, ISBN 978-1-78355-162-0, Installing Powerful Tools for Your Project, S. 12–14.
- ↑ Henri Levälampi: Modular Web Development Framework. Hrsg.: Helsinki Metropolia University of Applied Sciences. Helsinki 4. Dezember 2015.
- ↑ gulp – Getting Started. In: gulp.js. Abgerufen am 28. Mai 2016 (englisch).
- ↑ Plugins
- ↑ gulp API docs. In: gulp.js. Archiviert vom am 6. März 2017; abgerufen am 16. März 2024 (englisch).
- ↑ gulp-imagemin Plugin
- ↑ Durchstarten mit Gulp.js – Websites optimieren, Arbeitsabläufe automatisieren. Archiviert vom am 16. Juni 2017; abgerufen am 16. März 2024.
- ↑ Front-end Workflow mit Gulp. Abgerufen am 30. Mai 2016.
- ↑ gulp-uglify Plugin
- ↑ Browsersync + Gulp.js. Abgerufen am 30. Mai 2016.