Gulp - Kurzanleitung
Was ist Gulp?
Gulp ist ein Task Runner, der Node.js als Plattform verwendet. Gulp verwendet ausschließlich den JavaScript-Code und hilft beim Ausführen von Front-End-Aufgaben und umfangreichen Webanwendungen. Es erstellt systemautomatisierte Aufgaben wie CSS- und HTML-Minimierung, Verkettung von Bibliotheksdateien und Kompilieren der SASS-Dateien. Diese Aufgaben können mithilfe von Shell- oder Bash-Skripten in der Befehlszeile ausgeführt werden.
Warum Gulp verwenden?
- Es ist kürzer, einfacher und schneller als andere Task Runner.
- Verwendet SASS und LESS als CSS-Präprozessor.
- Aktualisiert die Seite nach dem Bearbeiten der Quelldateien automatisch.
- Die Gulpfile.js sind leicht zu verstehen und zu erstellen, da sie zum Erstellen der Aufgabe reinen JavaScript-Code verwenden.
Geschichte
Die gesamte Dokumentation von Gulp ist durch die CC0-Lizenz abgedeckt. Ursprünglich wurde Gulp v1.0.0 am 15. Januar 2015 veröffentlicht und die aktuelle Version von Gulp istv3.9.0.
Eigenschaften
- Bietet Minimierung und Verkettung.
- Verwendet reinen JavaScript-Code.
- Konvertiert LESS oder SASS in CSS-Kompilierung.
- Verwaltet die Dateimanipulation im Speicher und erhöht die Geschwindigkeit mithilfe der Node.js-Plattform.
Vorteile
- Riesiger Geschwindigkeitsvorteil gegenüber jedem anderen Task Runner
- Einfach zu codieren und zu verstehen.
- Einfach, die Webanwendungen zu testen ..
- Plugins sind einfach zu bedienen und können jeweils nur eine Aufgabe ausführen.
- Führt sich wiederholende Aufgaben wie das Minimieren von Stylesheets, das Komprimieren von Bildern usw. wiederholt aus.
Nachteile
- Mehr Abhängigkeiten und ist ein Neuling im Vergleich zu Grunt.
- Mit Gulp-Plugins können Sie nicht mehrere Aufgaben ausführen.
- Die Konfiguration ist nicht so sauber wie bei Grunt.
Dieser Artikel enthält eine schrittweise Anleitung zur Installation von Gulp.
Systemanforderungen für Gulp
Operating System - Plattformübergreifend
Browser Support - IE (Internet Explorer 8+), Firefox, Google Chrome, Safari, Opera
Installation von Gulp
Step 1- Wir brauchen Node.js, um Gulp-Beispiele auszuführen. Öffnen Sie zum Herunterladen von Node.js diehttps://nodejs.org/en/sehen Sie einen Bildschirm wie unten gezeigt -
Laden Sie die neueste Version der Zip-Datei herunter.
Step 2- Führen Sie als Nächstes das Setup aus, um die NodeJs auf Ihrem Computer zu installieren .
Step 3 - Sie müssen Umgebungsvariablen festlegen.
Pfad Benutzervariable
- Klicken Sie mit der rechten Maustaste auf Arbeitsplatz.
- Wählen Sie Eigenschaften.
- Wählen Sie die Registerkarte Erweitert und klicken Sie auf "Umgebungsvariablen".
Doppelklicken Sie im Fenster Umgebungsvariablen auf den PFAD, wie im folgenden Bildschirm gezeigt.
Sie erhalten ein Fenster zum Bearbeiten von Benutzervariablen, wie im folgenden Screenshot gezeigt. Fügen Sie den Ordnerpfad Node.js im Feld Variablenwert als C: \ Programme \ nodejs \ node_modules \ npm hinzu. Wenn der Pfad bereits für andere Dateien festgelegt ist, müssen Sie danach ein Semikolon (;) einfügen und den Pfad Node.js hinzufügen, wie im folgenden Screenshot gezeigt.
Klicken Sie am Ende auf die Schaltfläche "OK".
System Variable
Doppelklicken Sie unter Systemvariablen auf Pfad, wie im folgenden Bildschirm gezeigt.
Sie erhalten ein Fenster zum Bearbeiten der Systemvariablen, wie im folgenden Screenshot gezeigt. Fügen Sie den Ordnerpfad Node.js im Feld Variablenwert als C: \ Programme \ nodejs \ hinzu und klicken Sie auf " OK " (siehe folgenden Screenshot).
Step 4- Öffnen Sie die Eingabeaufforderung in Ihrem System und geben Sie den folgenden Befehl ein. Es wird die installierte Node.js-Version angezeigt.
node -v
Step 5- Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um die Version von npm (Node.js-Paketmanager) anzuzeigen, mit der Module installiert werden. Es wird die installierte Node.js-Version angezeigt.
npm -v
Step 6- Geben Sie an der Eingabeaufforderung den folgenden Befehl ein, um Gulp zu installieren. Durch Hinzufügen des Flags "-g" wird sichergestellt, dass der Gulp für jedes Projekt global verfügbar ist.
npm install gulp -g
Step 7 - Um zu überprüfen, ob Gulp erfolgreich installiert wurde, geben Sie den folgenden Befehl ein, um die Gulp-Version anzuzeigen.
gulp -v
In diesem Kapitel lernen Sie einige Grundlagen zu Gulp kennen.
Was ist ein Build-System?
Ein Build-System wird als Sammlung von Aufgaben bezeichnet (zusammen als bezeichnet task runners), die die sich wiederholende Arbeit automatisieren.
Im Folgenden finden Sie eine Liste einiger Aufgaben, die mit dem Build-System ausgeführt werden können:
- Kompilierung von Vorverarbeitungs-CSS und JavaScript.
- Minimierung von Dateien zur Reduzierung der Größe.
- Verkettung von Dateien zu einer.
- Auslösen des Servers zum automatischen Neuladen.
- Erstellung von Bereitstellungsbuilds zum Speichern der resultierenden Dateien an einem Speicherort.
Im modernen Front-End-Workflow arbeitet das Build-System mit 3 Komponenten:
- Paketmanager
- Preprocessors
- Aufgabenläufer und Werkzeuge bauen
Paketmanager
Es wird verwendet, um das Installations-Upgrade zu automatisieren, erforderliche Abhängigkeiten zu entfernen, Bibliotheken und Pakete zu bereinigen, die in der Entwicklungsumgebung verwendet werden. Beispiel für Paketmanager sindbower und npm.
Präprozessoren
Präprozessoren sind sehr nützlich für einen effizienten modernen Workflow, indem sie eine optimierte Syntax und zusätzliche Funktionen hinzufügen, die in die Muttersprache kompiliert werden.
Einige der beliebtesten Präprozessoren sind -
CSS - SASS, LESS und Stylus.
JS - CoffeeScript, LiveScript, TypeScript usw.
HTML - Markdown, HAML, Slim, Jade usw.
Task Runners
Aufgabenläufer automatisieren Aufgaben wie die Konvertierung von SASS in CSS, minimieren die Dateien, optimieren Bilder und viele andere Aufgaben, die im Entwicklungsworkflow verwendet werden. Gulp ist einer der Task Runner in der modernen Front-End-Arbeitsumgebung und läuft auf Node.
Einrichten Ihres Projekts
Um Ihr Projekt auf Ihrem Computer festzulegen, erstellen Sie beispielsweise einen Ordner mit dem Namen "Arbeit". Der Arbeitsordner enthält folgende Unterordner und Dateien:
Src - Speicherort der vorverarbeiteten HTML-Quelldateien und -Ordner.
Images - Enthält Bilder, die nicht komprimiert sind.
Scripts - Enthält mehrere vorverarbeitete Skriptdateien.
Styles - Enthält mehrere vorverarbeitete CSS-Dateien.
Build - Dieser Ordner wird automatisch erstellt und enthält die Produktionsdateien.
Images - Enthält komprimierte Bilder.
Scripts - Einzelne Skriptdatei, die minimierte Codes enthält.
Styles - Einzelne CSS-Datei, die minimierte Codes enthält.
gulpfile.js - Es ist die Konfigurationsdatei, mit der unsere Aufgaben definiert werden.
In den vorherigen Kapiteln haben Sie sich mit der Gulp-Installation und den Gulp-Grundlagen befasst , einschließlich des Build-Systems von Gulp, des Paketmanagers, des Task-Runners, der Struktur von Gulp usw.
In diesem Kapitel werden die Grundlagen für die Entwicklung einer Anwendung beschrieben, die Folgendes umfassen:
- Erforderliche Abhängigkeiten deklarieren
- Aufgabe für die Abhängigkeiten erstellen
- Ausführen der Aufgabe
- Die Aufgabe beobachten
Abhängigkeitserklärung
Wenn Sie Plugins für die Anwendung installieren, müssen Sie Abhängigkeiten für die Plugins angeben. Die Abhängigkeiten werden vom Paketmanager wie bower und npm behandelt.
Nehmen wir ein Plugin namens gulp-imageminAbhängigkeiten dafür in der Konfigurationsdatei zu definieren. Dieses Plugin kann zum Komprimieren der Image-Datei verwendet und über die folgende Befehlszeile installiert werden:
npm install gulp-imagemin --save-dev
Sie können Ihrer Konfigurationsdatei Abhängigkeiten hinzufügen, wie im folgenden Code gezeigt.
var imagemin = require('gulp-imagemin');
Die obige Zeile enthält das Plug-In und es ist als Objekt mit dem Namen enthalten imagemin.
Aufgabe für Abhängigkeiten erstellen
Task ermöglicht einen modularen Ansatz zur Konfiguration von Gulp. Wir müssen für jede Abhängigkeit eine Aufgabe erstellen, die wir addieren würden, wenn wir andere Plugins finden und installieren. Die Gulp-Aufgabe hat die folgende Struktur:
gulp.task('task-name', function() {
//do stuff here
});
Wobei 'Aufgabenname' ein Zeichenfolgenname ist und 'function ()' Ihre Aufgabe ausführt. Die 'gulp.task' registriert die Funktion als Aufgabe innerhalb des Namens und gibt die Abhängigkeiten von anderen Aufgaben an.
Sie können die Aufgabe für die oben definierte Abhängigkeit erstellen, wie im folgenden Code gezeigt.
gulp.task('imagemin', function() {
var img_src = 'src/images/**/*', img_dest = 'build/images';
gulp.src(img_src)
.pipe(changed(img_dest))
.pipe(imagemin())
.pipe(gulp.dest(img_dest));
});
Die Bilder befinden sich in src/images/**/*welches im img_srcobject gespeichert ist. Es wird an eine andere Funktion weitergeleitet, die vom Imagemin-Konstruktor erstellt wurde. Es komprimiert die Bilder aus dem src-Ordner und kopiert sie durch Aufrufen in den Build-Ordnerdest Methode mit einem Argument, das das Zielverzeichnis darstellt.
Ausführen der Aufgabe
Die Gulp-Datei ist eingerichtet und kann ausgeführt werden. Verwenden Sie den folgenden Befehl in Ihrem Projektverzeichnis, um die Aufgabe auszuführen:
gulp imagemin
Wenn Sie die Aufgabe mit dem obigen Befehl ausführen, wird an der Eingabeaufforderung das folgende Ergebnis angezeigt:
C:\work>gulp imagemin
[16:59:09] Using gulpfile C:\work\gulpfile.js
[16:59:09] Starting 'imagemin'...
[16:59:09] Finished 'imagemin' after 19 ms
[16:59:09] gulp-imagemin: Minified 2 images (saved 80.81 kB - 16.9%)
Task ermöglicht einen modularen Ansatz zur Konfiguration von Gulp. Wir müssen für jede Abhängigkeit eine Aufgabe erstellen, die wir addieren würden, wenn wir andere Plugins finden und installieren. Die Gulp-Aufgabe hat folgende Struktur:
gulp.task('task-name', function() {
//do stuff here
});
Wobei "Aufgabenname" ein Zeichenfolgenname ist und "function ()" Ihre Aufgabe ausführt. Die "gulp.task" registriert die Funktion als Aufgabe innerhalb des Namens und gibt die Abhängigkeiten von anderen Aufgaben an.
Plugins installieren
Nehmen wir ein Plugin namens minify-cssum alle CSS-Skripte zusammenzuführen und zu minimieren. Es kann mit npm installiert werden, wie im folgenden Befehl gezeigt -
npm install gulp-minify-css --save-dev
Um mit dem "gulp-minify-css-Plugin" zu arbeiten, müssen Sie ein anderes Plugin namens "gulp-autoprefixer" installieren, wie im folgenden Befehl gezeigt -
npm install gulp-autoprefixer --save-dev
Um die CSS-Dateien zu verketten, installieren Sie gulp-concat wie im folgenden Befehl gezeigt:
npm install gulp-concat --save-dev
Nach der Installation der Plugins müssen Sie Abhängigkeiten wie folgt in Ihre Konfigurationsdatei schreiben:
var autoprefix = require('gulp-autoprefixer');
var minifyCSS = require('gulp-minify-css');
var concat = require('gulp-concat');
Hinzufügen einer Aufgabe zur Gulp-Datei
Wir müssen für jede Abhängigkeit eine Aufgabe erstellen, die wir bei der Installation der Plugins addieren würden. Die Gulp-Aufgabe hat folgende Struktur:
gulp.task('styles', function() {
gulp.src(['src/styles/*.css'])
.pipe(concat('styles.css'))
.pipe(autoprefix('last 2 versions'))
.pipe(minifyCSS())
.pipe(gulp.dest('build/styles/'));
});
Das Plugin 'concat' verkettet die CSS-Dateien und das Plugin 'autoprefix' zeigt die aktuelle und die vorherige Version aller Browser an. Es minimiert alle CSS-Skripte aus dem src-Ordner und kopiert sie in den Build-Ordner, indem die Methode 'dest' mit einem Argument aufgerufen wird, das das Zielverzeichnis darstellt.
Verwenden Sie zum Ausführen der Aufgabe den folgenden Befehl in Ihrem Projektverzeichnis:
gulp styles
In ähnlicher Weise werden wir ein anderes Plugin namens 'gulp-imagemin' verwenden, um die Bilddatei zu komprimieren, die mit dem folgenden Befehl installiert werden kann:
npm install gulp-imagemin --save-dev
Mit dem folgenden Befehl können Sie Ihrer Konfigurationsdatei Abhängigkeiten hinzufügen:
var imagemin = require('gulp-imagemin');
Sie können die Aufgabe für die oben definierte Abhängigkeit erstellen, wie im folgenden Code gezeigt.
gulp.task('imagemin', function() {
var img_src = 'src/images/**/*', img_dest = 'build/images';
gulp.src(img_src)
.pipe(changed(img_dest))
.pipe(imagemin())
.pipe(gulp.dest(img_dest));
});
Die Bilder befinden sich in "src / images / ** / *", die im img_srcobject gespeichert sind. Es wird an andere Funktionen weitergeleitet, die vom Konstruktor 'imagemin' erstellt wurden. Es komprimiert die Bilder aus dem src-Ordner und kopiert sie in den Build-Ordner, indem die Methode 'dest' mit einem Argument aufgerufen wird, das das Zielverzeichnis darstellt.
Verwenden Sie zum Ausführen der Aufgabe den folgenden Befehl in Ihrem Projektverzeichnis:
gulp imagemin
Mehrere Aufgaben kombinieren
Sie können mehrere Aufgaben gleichzeitig ausführen, indem Sie eine Standardaufgabe in der Konfigurationsdatei erstellen, wie im folgenden Code gezeigt:
gulp.task('default', ['imagemin', 'styles'], function() {
});
Die Gulp-Datei ist eingerichtet und kann ausgeführt werden. Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um die oben genannten kombinierten Aufgaben auszuführen:
gulp
Wenn Sie die Aufgabe mit dem obigen Befehl ausführen, wird an der Eingabeaufforderung das folgende Ergebnis angezeigt:
C:\work>gulp
[16:08:51] Using gulpfile C:\work\gulpfile.js
[16:08:51] Starting 'imagemin'...
[16:08:51] Finished 'imagemin' after 20 ms
[16:08:51] Starting 'styles'...
[16:08:51] Finished 'styles' after 13 ms
[16:08:51] Starting 'default'...
[16:08:51] Finished 'default' after 6.13 ms
[16:08:51] gulp-imagemin: Minified 0 images
Die Watch-Methode wird verwendet, um Ihre Quelldateien zu überwachen. Wenn Änderungen an der Quelldatei vorgenommen werden, führt die Uhr eine entsprechende Aufgabe aus. Mit der Standardaufgabe können Sie nach Änderungen an HTML-, CSS- und JavaScript-Dateien suchen.
Standardaufgabe aktualisieren
Im vorherigen Kapitel haben Sie gelernt, wie Sie das Kombinieren von Aufgaben mit der Standardaufgabe schlucken . Wir haben gulp-minify-css, gulp-autoprefixer und gulp-concatplugins verwendet und eine Stilaufgabe zum Minimieren von CSS-Dateien erstellt.
Um die CSS-Datei anzusehen, müssen wir die 'Standard'-Aufgabe wie im folgenden Code gezeigt aktualisieren:
gulp.task('default', ['styles'], function() {
// watch for CSS changes
gulp.watch('src/styles/*.css', function() {
// run styles upon changes
gulp.run('styles');
});
});
Alle CSS-Dateien unter work/src/styles/ Der Ordner wird überwacht und bei Änderungen an diesen Dateien wird die Stilaufgabe ausgeführt.
Führen Sie die Standardaufgabe aus
Führen Sie die Standardaufgabe mit dem folgenden Befehl aus.
gulp
Nach Ausführung des obigen Befehls erhalten Sie die folgende Ausgabe.
C:\work>gulp
[17:11:28] Using gulpfile C:\work\gulpfile.js
[17:11:28] Starting 'styles'...
[17:11:28] Finished 'styles' after 22 ms
[17:11:28] Starting 'default'...
[17:11:28] Finished 'default' after 21 ms
Immer wenn Änderungen an CSS-Dateien vorgenommen werden, erhalten Sie die folgende Ausgabe.
C:\work>gulp
[17:11:28] Using gulpfile C:\work\gulpfile.js
[17:11:28] Starting 'styles'...
[17:11:28] Finished 'styles' after 22 ms
[17:11:28] Starting 'default'...
[17:11:28] Finished 'default' after 21 ms
gulp.run() has been deprecated. Use task dependencies or gulp.watch task
triggering instead.
[17:18:46] Starting 'styles'...
[17:18:46] Finished 'styles' after 5.1 ms
Der Überwachungsprozess bleibt aktiv und reagiert auf Ihre Änderungen. Sie können drückenCtrl+Cum den Überwachungsprozess zu beenden und zur Befehlszeile zurückzukehren.
Live Reload gibt die Änderungen im Dateisystem an. BrowserSyncwird verwendet, um alle HTML- und CSS-Dateien im CSS-Verzeichnis zu überwachen und in allen Browsern ein Live-Reload auf die Seite durchzuführen, wenn Dateien geändert werden. BrowserSync beschleunigt den Workflow, indem URLs, Interaktionen und Codeänderungen auf mehreren Geräten synchronisiert werden.
BrowserSync Plugin installieren
Das BrowserSync-Plugin bietet eine browserübergreifende CSS-Injektion und kann mit dem folgenden Befehl installiert werden.
npm install browser-sync --save-dev
BrowserSync Plugin konfigurieren
Um das BrowserSync-Plugin zu verwenden, müssen Sie Abhängigkeiten in Ihre Konfigurationsdatei schreiben, wie im folgenden Befehl gezeigt.
var browserSync = require('browser-sync').create();
Sie müssen eine Aufgabe erstellen, damit BrowserSync mit Gulp mit dem Server zusammenarbeitet. Da Sie Server ausführen, müssen Sie BrowserSync über das Stammverzeichnis Ihres Servers informieren. Hier verwenden wir das Basisverzeichnis als 'Build'.
gulp.task('browserSync', function() {
browserSync.init({
server: {
baseDir: 'build'
},
})
})
Sie können dem Browser auch neue Stile hinzufügen, indem Sie die folgende Aufgabe für die CSS-Datei verwenden.
gulp.task('styles', function() {
gulp.src(['src/styles/*.css'])
.pipe(concat('style.css'))
.pipe(autoprefix('last 2 versions'))
.pipe(minifyCSS())
.pipe(gulp.dest('build/styles/'))
.pipe(browserSync.reload({
stream: true
}))
});
Bevor Sie eine Aufgabe für BrowserSync erstellen, müssen Sie die Plugins mithilfe des Paketmanagers installieren und Abhängigkeiten in Ihre Konfigurationsdatei schreiben, wie in diesem Kapitel definiert .
Wenn Sie mit der Konfiguration fertig sind, führen Sie sowohl BrowserSync als auch watchTask aus, um das Auftreten eines Live-Reloading-Effekts festzustellen. Statt läuft separat zwei Befehlszeilen, werden wir sie zusammen laufen durch Zugabe von browserSynctask zusammen mit dem watchTask wie im folgenden Code dargestellt.
gulp.task('default', ['browserSync', 'styles'], function (){
gulp.watch('src/styles/*.css', ['styles']);
});
Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um die oben genannten kombinierten Aufgaben auszuführen.
gulp
Nachdem Sie die Aufgabe mit dem obigen Befehl ausgeführt haben, erhalten Sie an der Eingabeaufforderung das folgende Ergebnis.
C:\project>gulp
[13:01:39] Using gulpfile C:\project\gulpfile.js
[13:01:39] Starting 'browserSync'...
[13:01:39] Finished 'browserSync' after 20 ms
[13:01:39] Starting 'styles'...
[13:01:39] Finished 'styles' after 21 ms
[13:01:39] Starting 'default'...
[13:01:39] Finished 'default' after 15 ms
[BS] 1 file changed (style.css)
[BS] Access URLs:
------------------------------------
Local: http://localhost:3000
External: http://192.168.1.4:3000
------------------------------------
UI: http://localhost:3001
UI External: http://192.168.1.4:3001
------------------------------------
[BS] Serving files from: build
Es öffnet sich das Browserfenster mit der URL http://localhost:3000/. Alle an der CSS-Datei vorgenommenen Änderungen werden in der Eingabeaufforderung angezeigt und der Browser wird automatisch mit den geänderten Stilen neu geladen.
In diesem Kapitel erfahren Sie, wie Sie CSS und JavaScript optimieren. Die Optimierung ist erforderlich, um unnötige Daten (z. B. Leerzeichen und nicht verwendete Zeichen) aus den Quelldateien zu entfernen. Es reduziert die Größe der Dateien und ermöglicht es ihnen, schneller zu laden
Installieren Sie Plugins, um CSS und JavaScript zu optimieren
Gehen Sie von Ihrer Befehlszeile zum Verzeichnis "work" und installieren Sie die Plugins "gulp-uglify", "gulp-minify-css" und "gulp-concat" mit dem folgenden Befehl:
npm install gulp-uglify gulp-minify-css gulp-concat
Abhängigkeiten deklarieren und Aufgaben erstellen
In Ihrer Konfigurationsdatei gulpfile.jsDeklarieren Sie zuerst die Abhängigkeiten wie im folgenden Code gezeigt.
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var minify = require('gulp-minify-css');
Als Nächstes müssen Sie Aufgaben zur Optimierung von CSS und JavaScript erstellen, wie im folgenden Code gezeigt.
gulp.task('js', function(){
gulp.src('src/scripts/*.js')
.pipe(concat('script.js'))
.pipe(uglify())
.pipe(gulp.dest('build/scripts/'));
});
gulp.task('css', function(){
gulp.src('src/styles/*.css')
.pipe(concat('styles.css'))
.pipe(minify())
.pipe(gulp.dest('build/styles/'));
});
gulp.task('default',['js','css'],function(){
});
Das js Aufgabe wird akzeptiert .js Dateien aus src/scripts/Mappe. Es verkettet und hässlichjs Dateien, dann produziert build/scripts/script.js Datei.
Das CSS Aufgabe wird annehmen .css Dateien aus src/styles/Mappe. Es verkettet und minimiertCSS Dateien, dann produziert build/styles/styles.css Datei.
Führen Sie die Aufgaben aus
Die Konfigurationsdatei ist eingerichtet und kann ausgeführt werden. Verwenden Sie den folgenden Befehl, um die Aufgabe auszuführen.
gulp
Wenn Sie die Aufgabe mit dem obigen Befehl ausführen, erhalten Sie an der Eingabeaufforderung das folgende Ergebnis.
C:\work>gulp
[13:16:34] Using gulpfile C:\work\gulpfile.js
[13:16:34] Starting 'js'...
[13:16:34] Finished 'js' after 24 ms
[13:16:34] Starting 'css'...
[13:16:34] Finished 'css' after 6.05 ms
[13:16:34] Starting 'default'...
[13:16:34] Finished 'default' after 5.04 μs
In diesem Kapitel erfahren Sie, wie Sie Bilder optimieren. Durch die Optimierung wird die Größe der Bilder reduziert und das Laden beschleunigt.
Installieren Sie Plugins, um Bilder zu optimieren
Gehen Sie von Ihrer Befehlszeile zum Verzeichnis "work" und installieren Sie die Plugins "gulp-changed" und "gulp-imagemin" mit den folgenden Befehlen.
npm install gulp-changed --save-dev
npm install gulp-imagemin --save-dev
Abhängigkeiten deklarieren und Aufgaben erstellen
In Ihrer Konfigurationsdatei gulpfile.jsDeklarieren Sie zuerst die Abhängigkeiten wie im folgenden Befehl gezeigt.
var gulp = require('gulp');
var changed = require('gulp-changed');
var imagemin = require('gulp-imagemin');
Als Nächstes müssen Sie Aufgaben zum Optimieren von Bildern erstellen, wie im folgenden Code gezeigt.
gulp.task('imagemin', function() {
var imgSrc = 'src/images/*.+(png|jpg|gif)',
imgDst = 'build/images';
gulp.src(imgSrc)
.pipe(changed(imgDst))
.pipe(imagemin())
.pipe(gulp.dest(imgDst));
});
gulp.task('default',['imagemin'],function(){
});
Das imageminDie Task akzeptiert PNG-, JPG- und GIF- Bilder aus dem Ordner src / images / und minimiert sie, bevor sie in das Ziel geschrieben wird. Daschanged()stellt sicher, dass jedes Mal nur die neuen Dateien zur Minimierung übergeben werden. Das von gulp geänderte Plugin verarbeitet nur die neuen Dateien und benötigt daher wertvolle Zeit.
Führen Sie die Aufgaben aus
Die Konfigurationsdatei ist eingerichtet und kann ausgeführt werden. Verwenden Sie den folgenden Befehl, um die Aufgabe auszuführen.
gulp
Wenn Sie die Aufgabe mit dem obigen Befehl ausführen, erhalten Sie an der Eingabeaufforderung das folgende Ergebnis.
C:\work>gulp
[15:55:49] Using gulpfile C:\work\gulpfile.js
[15:55:49] Starting 'imagemin'...
[15:55:49] Finished 'imagemin' after 23 ms
[15:55:49] Starting 'default'...
[15:55:49] Finished 'default' after 23 μs
[15:55:54] gulp-imagemin: Minified 1 images (saved 558.3 kB - 8.3%)
Gulp bietet einige nützliche Plugins für die Arbeit mit HTML & CSS, JavaScript, Grafiken und einigen anderen Dingen, wie in den folgenden Tabellen beschrieben.
HTML & CSS Plugins
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | autoprefixer Es enthält automatisch Präfixe für CSS-Eigenschaften. |
2 | gulp-browser-sync Es wird verwendet, um alle HTML- und CSS-Dateien im CSS-Verzeichnis zu überwachen und das Live-Neuladen auf die Seite in allen Browsern durchzuführen, wenn Dateien geändert werden |
3 | gulp-useref Es wird verwendet, um Verweise auf nicht optimierte Skripte oder Stylesheets zu ersetzen. |
4 | gulp-email-design Es werden HTML-E-Mail-Vorlagen erstellt, die CSS-Stile in Inline konvertieren. |
5 | gulp-uncss Es optimiert CSS-Dateien und findet nicht verwendete und duplizierte Stile. |
6 | gulp-csso Es ist ein CSS-Optimierer, der CSS-Dateien minimiert, was zu einer kleineren Dateigröße führt. |
7 | gulp-htmlmin Es minimiert HTML-Dateien. |
8 | gulp-csscomb Es wird verwendet, um einen Formatierer für CSS zu erstellen. |
9 | gulp-csslint Es gibt einen CSS-Linter an. |
10 | gulp-htmlhint Es gibt einen HTML-Validator an. |
JavaScript-Plugins
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | gulp-autopolyfiller Es ist dasselbe wie der Autoprefixer, der die erforderlichen Polyfüllungen für JavaScript enthält. |
2 | gulp-jsfmt Es wird zum Suchen bestimmter Codefragmente verwendet. |
3 | gulp-jscs Es wird verwendet, um den JavaScript-Codestil zu überprüfen. |
4 | gulp-modernizr Es gibt an, welche HTML-, CSS- und JavaScript-Funktionen der Browser des Benutzers bietet. |
5 | gulp-express Es startet den Webserver von gulp express.js. |
6 | gulp-requirejs Es verwendet require.js, um die AMD-Module von require.js in einer Datei zu kombinieren. |
7 | gulp-plato Es werden Komplexitätsanalyseberichte erstellt. |
8 | gulp-complexity Es analysiert die Komplexität und Wartbarkeit von Code. |
9 | fixmyjs Es korrigiert JSHint-Ergebnisse. |
10 | gulp-jscpd Es wird als Copy / Paste-Detektor für den Quellcode verwendet. |
11 | gulp-jsonlint Es ist JSON-Validator. |
12 | gulp-uglify Es minimiert die JavaScript-Dateien. |
13 | gulp-concat Es verkettet die CSS-Dateien. |
Unit Tests Plugins
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | gulp-nodeunit Es führt Node Unit Tests von Gulp aus. |
2 | gulp-jasmine Es wird verwendet, um die Probleme im Zusammenhang mit der Ausgabe zu melden. |
3 | gulp-qunit Es bietet eine grundlegende Konsolenausgabe für QUnit-Tests und verwendet das PhantomJS-Knotenmodul und das PhantomJS-Runner-QUnit-Plugin. |
4 | gulp-mocha Es gibt die dünne Hülle um Mokka an und führt die Mokka-Tests aus. |
5 | gulp-karma Es wurde in Gulp veraltet. |
Grafik-Plugins
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | gulpicon Es generiert Sprites aus SVG und konvertiert sie in PNG. |
2 | gulp-iconfont Es wird mit Web-Schriftarten verwendet, um WOFF-, EOT- und TTF-Dateien aus SVG zu erstellen. |
3 | gulp-imacss Es wandelt Bilddateien in Daten-URIs um und platziert sie in einer einzelnen CSS-Datei. |
4 | gulp-responsive Es generiert reaktionsschnelle Bilder für verschiedene Geräte
|
5 | gulp-sharp Es wird verwendet, um die Ausrichtung und den Hintergrund des Bildes zu ändern und seine Größe zu ändern. |
6 | gulp-svgstore Es kombiniert SVG-Dateien zu einer mit <symbol> -Elementen. |
7 | gulp-imagemin & gulp-tinypng Es wird zum Komprimieren von Bildern wie PNG, JPEG, GIF, SVG verwendet. |
8 | gulp-spritesmith Es wird zum Erstellen eines Spritesheets aus einer Reihe von Bildern und CSS-Variablen verwendet. |
Compiler-Plugins
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | gulp-less Es bietet WENIGER Plugin für Gulp. |
2 | gulp-sass Es bietet SASS-Plugin für Gulp. |
3 | gulp-compass Es bietet Kompass-Plugin für Gulp. |
4 | gulp-stylus Es wird verwendet, um den Stift in CSS zu halten. |
5 | gulp-coffee Es bietet Coffeescript Plugin für Gulp. |
6 | gulp-handlebars Es bietet Lenker-Plugin für Gulp. |
7 | gulp-jst Es bietet Unterstrichvorlagen in JST. |
8 | gulp-react Es gibt Facebook React JSX-Vorlagen in JavaScript an. |
9 | gulp-nunjucks Es gibt Nunjucks-Vorlagen in JST an. |
10 | gulp-dustjs Es gibt Staubvorlagen in JST an. |
11 | gulp-angular-templatecache Es gibt AngularJS-Vorlagen im templateCache an. |
Andere Plugins
Das gulp-clean-Plugin entfernt Dateien und Ordner und das gulp-copy-Plugin kopiert die Dateien von der Quelle zum neuen Ziel.
Sr.Nr. | Plugin & Beschreibung |
---|---|
1 | gulp-grunt Es führt die Grunt-Aufgaben von Gulp aus
|
2 | gulp-watch Es überwacht die Dateien, wenn Änderungen vorgenommen werden. |
3 | gulp-notify Es benachrichtigt die Fehlermeldung, wenn eine Aufgabe fehlschlägt. |
4 | gulp-git Es erlaubt die Verwendung von Git-Befehlen. |
5 | gulp-jsdoc Es wird eine JavaScript-Dokumentation für Gulp erstellt. |
6 | gulp-rev Es bietet eine statische Asset-Revision für Dateinamen. |
7 | gulp-bump Es erhöht die Versionen im JSON-Paket. |
8 | gulp-bower-files Es wird verwendet, um Laubenpakete einzuspritzen. |
9 | gulp-removelogs Es entfernt die Anweisungen console.log. |
10 | gulp-preprocess Es verarbeitet HTML, JavaScript und andere Dateien basierend auf der Kontext- oder Umgebungskonfiguration vor. |
11 | gulp-duration Es gibt die Dauer für Gulp-Aufgaben an. |
12 | gulp-changed & gulp-newer Es werden die geänderten und neueren Dateien ausgeführt. |
13 | gulp-connect Es wird verwendet, um einen Webserver mit LiveReload auszuführen. |
14 | gulp-shell Es werden Shell-Befehle ausgeführt. |
15 | gulp-ssh Die Verbindung wird mithilfe von SSH- und SFTP-Tasks hergestellt. |
16 | gulp-zip Es komprimiert die Dateien und Ordner. |
17 | gulp-clean & gulp-copy |
18 | gulp-filesize Es gibt die Dateigröße im lesbaren Format an. |
19 | gulp-util Es bietet Dienstprogramme für Gulp-Plugins. |
In diesem Kapitel erfahren Sie, wie Sie generierte Dateien bereinigen. Stellen Sie beim automatischen Generieren der Dateien sicher, dass nicht benötigte Dateien gelöscht werden, bevor Sie Ihren Build ausführen. Diese Prozedur wird aufgerufencleaning. Dasdel Plugin kann für diesen Zweck verwendet werden.
Del Plugins installieren
Installieren Sie in Ihrer Befehlszeile das Plugin, indem Sie den folgenden Befehl eingeben.
npm install del --save-dev
Abhängigkeiten deklarieren und Aufgaben erstellen
In Ihrer Konfigurationsdatei gulpfile.jsDeklarieren Sie die Abhängigkeiten wie im folgenden Befehl gezeigt.
var del = require('del');
Erstellen Sie als Nächstes eine Aufgabe wie im folgenden Code gezeigt.
gulp.task('clean:build', function() {
return del.sync('build');
});
Die obige Aufgabe bereinigt den gesamten Build. Die Bereinigungsaufgabe löscht alle Bildfänge und entfernt alle alten Dateien, die im Build vorhanden sind.
Es ist möglich, nur bestimmte Dateien oder Ordner zu bereinigen und einige davon unberührt zu lassen, wie im folgenden Code dargestellt.
gulp.task('clean:build', function() {
//return del.sync('build');
return del([
'build/temp/',
// instructs to clean temp folder
'!build/package.json'
// negate to instruct not to clean package.json file ]);
});
In der obigen Aufgabe nur die temp Ordner wird gereinigt verlassen package.json unberührt.