Gulp plugin that acts like a buffer, but a bit differently
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Gulp plugin that acts like a buffer, but a bit differently:

gulp-aggregate is a Through stream with a twist. Every time the stream receives a file, it will keep it in an in-memory buffer along with the files received in the past, keeping one copy per file path. It then writes the full batch of files into a new stream (which is passed to a callback function) and emits the end event on that stream.

This behaviour allows you to use continuous streams (that never emit the end event, like gulp-watch) and make them play well with other gulp plugins that expect the source stream to end (like gulp-concat and gulp-inject).


watch = require('gulp-watch');
aggregate = require('gulp-aggregate');

// concat requires 'end' event in order to concat all the files
concat = require('gulp-concat');

fileStreamWithNoEndEvent = watch({glob: 'watchedScripts/*.js'})
.pipe(aggregate({debounce: 10}, function(fileStreamWithEndEvent) {
    return fileStreamWithEndEvent

The default debounce time is 50ms. After debounce milliseconds without receiving data, the callback function will get called with the new aggregated stream.