I am relatively new to gulp, and I was wondering what exactly does the .pipe()
do in a gulp task? I've gathered that it usually runs after a return
and after .src
, but there must be more to it than that. I've been unable to find anything on the web or in gulp's documentation and I really want to understand what I'm using.
EDIT I found this, but it does a poor job of explaining it
There are 5 types of streams are available in Gulp.
Streams in Gulp provide us with a way to convert files into object that can flow through the pipeline without having to be written to disk after each step. The same workflow would look like this in Gulp: Start reading src/*. coffee. Pipe output from 1 into CoffeeScript.
Gulpfile explained A gulpfile is a file in your project directory titled gulpfile. js (or capitalized as Gulpfile. js , like Makefile), that automatically loads when you run the gulp command.
To indicate to gulp that an error occurred in a task using an error-first callback, call it with an Error as the only argument. However, you'll often pass this callback to another API instead of calling it yourself.
From the Node docs:
https://nodejs.org/api/stream.html#stream_readable_pipe_destination_options
The readable.pipe() method attaches a Writable stream to the readable, causing it to switch automatically into flowing mode and push all of its data to the attached Writable. The flow of data will be automatically managed so that the destination Writable stream is not overwhelmed by a faster Readable stream.
So in Gulp you can chain multiple tasks together using the pipe()
method. Gulp makes use of streams. There are readable and writeable streams. Take the following snippet for example:
gulp.src(config.jsSrc) .pipe(uglify()) .pipe(gulp.dest(config.dest + '/js')) .pipe(size());
gulp.src(...)
turns the path at config.jsSrc
into a readable stream of data that we are then piping to the gulp-uglify
module. The uglify task returns a stream that we then pipe to our destination and so on...
Since a stream is usually a single file, some may be confused how Gulp is putting multiple files in the stream. Gulp actually uses streams in object mode:
gulp.src('*.js')
reads all files ending in.js
and emits each as an object on the stream.
Source: https://medium.com/gulpjs/gulp-sips-how-we-use-streams-d7790b22bf1a
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With