2016-07-15 6 views
22

Ich bin relativ neu zu schlucken, und ich frage mich, was genau macht die .pipe() in einem Schluck-Task? Ich habe festgestellt, dass es in der Regel nach einem return und nach .src läuft, aber es muss mehr als das sein. Ich konnte nichts im Web oder in der Dokumentation finden und ich möchte wirklich verstehen, was ich benutze.Was genau bedeutet .pipe() im Schluck?

EDIT fand ich this, aber es hat einen schlechten Job es zu erklären,

+0

Gulp.js verwendet Pipes zum Streamen von Daten, die verarbeitet werden müssen. Seine Syntax zum Einrichten von Aufgaben ist sehr einfach. Wenn Sie das Konzept der Verwendung von Gulp nicht verstanden haben, ist das API-Dokument nicht zu lesen, es ist nur eine Empfehlung, Entwickler an eine bestimmte Methode und wie Sie sie verwenden, zu verweisen. –

+0

Ich habe ein Bild, dass Gulp .pipe() -Funktion ist eigentlich ein Versprechen. Ist es? – Abdillah

Antwort

19

von dem Knoten docs:

https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options

Die readable.pipe() -Methode ein beschreibbares Strom misst an das Lesbare, was dazu führt, dass es automatisch in den Fließmodus wechselt und alle Daten an das angehängte Writable überträgt. Der Datenfluss wird automatisch verwaltet, sodass der beschreibbare Zielstream nicht von einem schnelleren lesbaren Stream überlastet wird.

So in Gulp können Sie mehrere Aufgaben miteinander verketten, indem Sie die pipe() Methode verwenden. Gulp nutzt Streams. Es gibt lesbare und schreibbare Streams. Nehmen Sie den folgenden Ausschnitt zum Beispiel:

gulp.src(config.jsSrc) 
    .pipe(uglify()) 
    .pipe(gulp.dest(config.dest + '/js')) 
    .pipe(size()); 

gulp.src(...) schaltet den Pfad an config.jsSrc in einen lesbaren Strom von Daten, die wir dann an das Modul gulp-uglify Rohrleitungen. Die Uglify-Task gibt einen Stream zurück, den wir dann an unser Ziel leiten, und so weiter ...