Heim Web-Frontend js-Tutorial So verwenden Sie gulp, das auf Node.js basierende JavaScript-Projekterstellungstool

So verwenden Sie gulp, das auf Node.js basierende JavaScript-Projekterstellungstool

Jun 30, 2018 pm 03:06 PM
gulp javascript node Projektaufbau

In diesem Artikel wird hauptsächlich die Verwendung des auf Node.js basierenden JavaScript-Projektkonstruktionstools vorgestellt. Jetzt kann ich es mit Ihnen teilen.

Vielleicht Wenn Sie Grunt verwendet haben, sind Sie mit Amway Gulp vertraut. Werfen wir einen Blick auf das Tutorial zur Verwendung von Gulp, einem auf Node.js basierenden JavaScript-Projektkonstruktionstool

npm install gulp --save-dev
Nach dem Login kopieren

Was ist Gulp?
gulp ist eine neue Generation von Front-End-Projekterstellungstools. Sie können gulp und seine Plug-Ins verwenden, um Ihren Projektcode (less, sass) zu kompilieren, Ihren JS- und CSS-Code zu komprimieren und sogar Ihren Für Bilder verfügt gulp nur über eine geringe API-Menge und ist daher sehr einfach zu erlernen. Gulp verwendet die Stream-Methode, um Inhalte zu verarbeiten. Node hat eine Reihe von Automatisierungstools hervorgebracht, wie Bower, Yeoman, Grunt usw.

Ähnlichkeiten und Unterschiede zwischen gulp und grunt
Einfach zu bedienen: Durch die Verwendung einer Code-over-Configuration-Strategie hält Gulp einfache Dinge einfach und komplexe Aufgaben beherrschbar.
Effizient: Durch die Nutzung der leistungsstarken Streams von Node.js müssen keine Zwischendateien auf die Festplatte geschrieben werden, sodass der Build schneller abgeschlossen werden kann.
Hohe Qualität: Die strengen Plugin-Richtlinien von Gulp stellen sicher, dass Plugins einfach sind und so funktionieren, wie Sie es erwarten.
Einfach zu erlernen: Durch die Reduzierung der API auf ein Minimum können Sie Gulp in kurzer Zeit erlernen. Der Aufbau funktioniert genau so, wie Sie es sich vorstellen: eine Reihe von Streaming-Pipes.
Da gulp in node.js geschrieben ist, müssen Sie npm auf Ihrem Terminal installieren. npm ist der Paketmanager für node.js, also installieren Sie node.js zuerst auf Ihrem Computer.

gulp-Installationsbefehl

sudo npm install -g gulp
Nach dem Login kopieren

Erstellen Sie eine neue package.json-Datei im Stammverzeichnis

npm init .
Nach dem Login kopieren

Installieren Sie das gulp-Paket

Geben Sie nach der Installation erneut gulp -v ein, um die Versionsnummer zu überprüfen. Wenn das folgende Bild Erfolg zeigt:

2016520182145165.jpg (570×166)

Installieren Sie die Plug-in
Gängige Plug-ins installieren:

Sass-Kompilierung (gulp-ruby-sass)
CSS-Präfix automatisch hinzufügen (gulp-autoprefixer)
CSS komprimieren (gulp-ruby-sass) minify- css)
JS-Code-Überprüfung (gulp-jshint)
JS-Dateien zusammenführen (gulp-concat)
JS-Code komprimieren (gulp-uglify)
Bilder komprimieren (gulp-imagemin)
Seite automatisch aktualisieren (gulp-livereload)
Bildcache, nur komprimiert, wenn das Bild ersetzt wird (gulp-cache)
Erinnerung ändern (gulp-notify)
Dateien löschen (del)
Zur Installation Für diese Plug-Ins müssen Sie den folgenden Befehl ausführen:

$ npm install gulp-ruby-sass gulp-autoprefixer gulp-minify-css gulp-jshint gulp-concat gulp-uglify gulp-imagemin gulp-notify gulp-rename gulp-livereload gulp-cache del --save-dev-save和-save-dev可以省掉你手动修改package.json文件的步骤。
Nach dem Login kopieren
rrree

Modul und Versionsnummer automatisch zum Abschnitt „Abhängigkeiten“ hinzufügen

npm install module-name -save
Nach dem Login kopieren

Modul und Versionsnummer automatisch zum Abschnitt „Abhängigkeiten“ hinzufügen
gulp-Befehl
Sie müssen nur 5 wissen. Ein gulp-Befehl

gulp.task(name[, deps], fn) definiert den Aufgabennamen: Aufgabenname deps: abhängig Aufgabenname fn: Rückruffunktion

gulp.run(tasks...): Führe so viele Aufgaben wie möglich parallel aus

gulp.watch(glob, fn): Wenn der Inhalt von glob Änderungen, fn ausführen

gulp.src(glob): Nach Bedarf festlegen Der Pfad der zu verarbeitenden Datei kann aus mehreren Dateien in Form eines Arrays oder einem regulären

<🎜 bestehen >gulp.dest(path[, Optionen]): Legen Sie den Pfad der generierten Datei fest

glob: kann ein direkter Dateipfad sein. Was es bedeutet, ist Mustervergleich.
gulp leitet die zu verarbeitenden Dateien über die Pipeline-API (pipe()) an entsprechende Plug-Ins weiter. Führen Sie Dateiverarbeitungsaufgaben über Plug-Ins aus.

npm install module-name -save-dev
Nach dem Login kopieren

gulp.task Diese API wird zum Erstellen von Aufgaben verwendet. Sie können $gulp [Standard] in der Befehlszeile eingeben (Klammern bedeuten optional), um die oben genannten Aufgaben auszuführen.

offizielle gulp-API-Dokumentation: https://github.com/gulpjs/gulp/blob/master/docs/API.md

Gulp-Plug-in-Sammlung: http://gulpjs. com/plugins/


Beginnen Sie mit dem Erstellen des Projekts
Erstellen Sie eine neue gulpfile.js-Datei im Stammverzeichnis des Projekts und fügen Sie den folgenden Code ein:

gulp.task(&#39;default&#39;, function () {...});
Nach dem Login kopieren

Hinweis: Der Name von Die Datei gulpfile.js kann nicht geändert werden.

Das Projekt muss Uglify verwenden und Plug-Ins umbenennen. Führen Sie zur Installation den folgenden Befehl aus:

//在项目根目录引入gulp和uglify插件
var gulp = require(&#39;gulp&#39;);
var uglify = require(&#39;gulp-uglify&#39;);

gulp.task(&#39;compress&#39;,function(){
  return gulp.src(&#39;script/*.js&#39;)
  .pipe(uglify())
  .pipe(gulp.dest(&#39;dist&#39;));
});
Nach dem Login kopieren

Nehmen Sie als Beispiel mein Projekt und geben Sie das Verzeichnis ein, in dem sich gulpfile.js befindet:

npm install --save-dev gulp-uglify
npm install --save-dev gulp-rename
Nach dem Login kopieren

und geben Sie dann ein:

var gulp = require(&#39;gulp&#39;);
var uglify = require(&#39;gulp-uglify&#39;);
var rename = require(&#39;gulp-rename&#39;);

gulp.task(&#39;compress&#39;,function(){
  return gulp.src(&#39;script/*.js&#39;)
  .pipe(uglify())
  .pipe(rename(&#39;jquery.ui.min.js&#39;))
  .pipe(gulp.dest(&#39;dist&#39;));
});
Nach dem Login kopieren

该命令会安装package.json下的全部依赖,如下图所示:

2016520182629058.jpg (800×319)

完整的gulpfile.js

// 载入外挂
var gulp = require(&#39;gulp&#39;), 
  sass = require(&#39;gulp-ruby-sass&#39;),
  autoprefixer = require(&#39;gulp-autoprefixer&#39;),
  minifycss = require(&#39;gulp-minify-css&#39;),
  jshint = require(&#39;gulp-jshint&#39;),
  uglify = require(&#39;gulp-uglify&#39;),
  imagemin = require(&#39;gulp-imagemin&#39;),
  rename = require(&#39;gulp-rename&#39;),
  clean = require(&#39;gulp-clean&#39;),
  concat = require(&#39;gulp-concat&#39;),
  notify = require(&#39;gulp-notify&#39;),
  cache = require(&#39;gulp-cache&#39;),
  livereload = require(&#39;gulp-livereload&#39;);
 
// 样式
gulp.task(&#39;styles&#39;, function() { 
 return gulp.src(&#39;src/styles/main.scss&#39;)
  .pipe(sass({ style: &#39;expanded&#39;, }))
  .pipe(autoprefixer(&#39;last 2 version&#39;, &#39;safari 5&#39;, &#39;ie 8&#39;, &#39;ie 9&#39;, &#39;opera 12.1&#39;, &#39;ios 6&#39;, &#39;android 4&#39;))
  .pipe(gulp.dest(&#39;dist/styles&#39;))
  .pipe(rename({ suffix: &#39;.min&#39; }))
  .pipe(minifycss())
  .pipe(gulp.dest(&#39;dist/styles&#39;))
  .pipe(notify({ message: &#39;Styles task complete&#39; }));
});
 
// 脚本
gulp.task(&#39;scripts&#39;, function() { 
 return gulp.src(&#39;src/scripts/**/*.js&#39;)
  .pipe(jshint(&#39;.jshintrc&#39;))
  .pipe(jshint.reporter(&#39;default&#39;))
  .pipe(concat(&#39;main.js&#39;))
  .pipe(gulp.dest(&#39;dist/scripts&#39;))
  .pipe(rename({ suffix: &#39;.min&#39; }))
  .pipe(uglify())
  .pipe(gulp.dest(&#39;dist/scripts&#39;))
  .pipe(notify({ message: &#39;Scripts task complete&#39; }));
});
 
// 图片
gulp.task(&#39;images&#39;, function() { 
 return gulp.src(&#39;src/images/**/*&#39;)
  .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })))
  .pipe(gulp.dest(&#39;dist/images&#39;))
  .pipe(notify({ message: &#39;Images task complete&#39; }));
});
 
// 清理
gulp.task(&#39;clean&#39;, function() { 
 return gulp.src([&#39;dist/styles&#39;, &#39;dist/scripts&#39;, &#39;dist/images&#39;], {read: false})
  .pipe(clean());
});
 
// 预设任务
gulp.task(&#39;default&#39;, [&#39;clean&#39;], function() { 
  gulp.start(&#39;styles&#39;, &#39;scripts&#39;, &#39;images&#39;);
});
 
// 看守
gulp.task(&#39;watch&#39;, function() {
 
 // 看守所有.scss档
 gulp.watch(&#39;src/styles/**/*.scss&#39;, [&#39;styles&#39;]);
 
 // 看守所有.js档
 gulp.watch(&#39;src/scripts/**/*.js&#39;, [&#39;scripts&#39;]);
 
 // 看守所有图片档
 gulp.watch(&#39;src/images/**/*&#39;, [&#39;images&#39;]);
 
 // 建立即时重整伺服器
 var server = livereload();
 
 // 看守所有位在 dist/ 目录下的档案,一旦有更动,便进行重整
 gulp.watch([&#39;dist/**&#39;]).on(&#39;change&#39;, function(file) {
  server.changed(file.path);
 });
 
});
Nach dem Login kopieren

注:pipe()是stream模块里传递数据流的一个方法,第一个参数为插件方法,插件会接收从上游流下的文件,进行处理加工后,再往下流。

gulp.task(&#39;任务名称&#39;, function () {
  return gulp.src(&#39;文件路径&#39;)
    .pipe(...)
    .pipe(...)
    // 直到任务的最后一步
    .pipe(...);
});
Nach dem Login kopieren

gulp插件
gulp-gh-pages:使用gulp来把markdown生成html文档并上传到git pages上
https://github.com/shinnn/gulp-gh-pages

var gulp = require(&#39;gulp&#39;);

var ghPages = require(&#39;gulp-gh-pages&#39;);



gulp.task(&#39;deploy&#39;, function() {

 return gulp.src(&#39;./dist/**/*&#39;)

  .pipe(ghPages());

});
Nach dem Login kopieren

gulp-jade插件:将jade编译成html文件
gulp-less插件:将less编译成css文件

var less = require(&#39;gulp-less&#39;);

var path = require(&#39;path&#39;);

 

gulp.task(&#39;less&#39;, function () {

 return gulp.src(&#39;./less/**/*.less&#39;)

  .pipe(less({

   paths: [ path.join(__dirname, &#39;less&#39;, &#39;includes&#39;) ]

  }))

  .pipe(gulp.dest(&#39;./public/css&#39;));

});
gulp-live-server 插件:方便的,轻量级的服务器

var gulp = require(&#39;gulp&#39;);

 var gls = require(&#39;gulp-live-server&#39;);

 gulp.task(&#39;serve&#39;, function() {

 //1. serve with default settings

 var server = gls.static(); //equals to gls.static(&#39;public&#39;, 3000);

 server.start();



 //2. serve at custom port

 var server = gls.static(&#39;dist&#39;, 8888);

 server.start();



 //3. serve multi folders

 var server = gls.static([&#39;dist&#39;, &#39;.tmp&#39;]);

 server.start();



 //use gulp.watch to trigger server actions(notify, start or stop)

 gulp.watch([&#39;static/**/*.css&#39;, &#39;static/**/*.html&#39;], function (file) {

  server.notify.apply(server, [file]);

 });

});
Nach dem Login kopieren

gulp-livereload,可以实时保存刷新,那样就不用按F5和切换界面了
gulp-load-plugins:在你的package.json文件中自动加载任意的gulp插件

$ npm install --save-dev gulp-load-plugins
Nach dem Login kopieren

例如一个给定的package.json文件如下:

{

  "dependencies": {

    "gulp-jshint": "*",

    "gulp-concat": "*"

  }

}
Nach dem Login kopieren

在gulpfile.js中添加如下代码:

var gulp = require(&#39;gulp&#39;);

var gulpLoadPlugins = require(&#39;gulp-load-plugins&#39;);

var plugins = gulpLoadPlugins();
plugins.jshint = require(&#39;gulp-jshint&#39;);

plugins.concat = require(&#39;gulp-concat&#39;);
Nach dem Login kopieren

gulp-babel:gulp 的babel插件,

$ npm install --save-dev gulp-babel babel-preset-es2015
Nach dem Login kopieren

使用方法:

const gulp = require(&#39;gulp&#39;);
const babel = require(&#39;gulp-babel&#39;);

gulp.task(&#39;default&#39;, () => {
  return gulp.src(&#39;src/app.js&#39;)
    .pipe(babel({
      presets: [&#39;es2015&#39;]
    }))
    .pipe(gulp.dest(&#39;dist&#39;));
});
Nach dem Login kopieren

官方github: https://github.com/gulpjs/gulp

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

Node.js中如何合并两个复杂对象的介绍

关于Node.js 子进程与应用的介绍

Webpack优化配置缩小文件搜索范围的介绍

Das obige ist der detaillierte Inhalt vonSo verwenden Sie gulp, das auf Node.js basierende JavaScript-Projekterstellungstool. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

So verwenden Sie insertBefore in Javascript So verwenden Sie insertBefore in Javascript Nov 24, 2023 am 11:56 AM

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

See all articles