A gulp plugin for caching files in memory with incremental build helpers.
It is aimed to be used with Gulp 4, see why: Building with Gulp 4: Incremental builds.
If you are using Gulp 3, you will need to use gulp-memory-cache
in combination with gulp-cached
or similar.
However be aware that both modules will maintain their own cache and therefore files are cached twice.
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var cache = require('gulp-memory-cache');
gulp.task('buildJs', function () {
return gulp.src('src/**/*.js', {since: cache.lastMtime('js')})
.pipe(jshint())
.pipe(cache('js'))
.pipe(concat('app.js'))
.pipe(dest('build'));
});
gulp.task('watch', function () {
gulp.watch('src/**/*.js', gulp.series('buildJs'))
.on('change', cache.update('js'));
});
gulp.task('build', gulp.series('buildJs', 'watch'));
name
(required): the cache namesave
(optional, default totrue
): whether or not to save / update cache
If save
is truthy, it will save (update) streamed files to cache with name name
.
cache()
then returns a stream containing all files in cache in the order they were added.
name
(required): the cache name
Saves streamed files to cache with name name
. Useful if you want to save
in a pipeline for retrieving later (in the same or another pipeline).
name
(required): the cache name
Flush (remove all files) cache name
. Handy to force a stream to process again all its files.
name
(required): the cache namefilePath
(required): the file pathfn
: a file path transformation function
Remove from cache name
file with path filePath
. fn
is a file path transformation function (see below for
an example with cache.update()
.
name
(required): the cache namefn
: a file path transformation function
To use in watch.on('change', ...)
in order to avoid boilerplate code. It will automatically remove files which have
been deleted from cache name
. fn
is a function to transform a file path and can be useful for removing
a file from cache which name has been altered by a gulp plugin.
gulp.watch('src/**/*.tpl.html', gulp.series('bundlePartials'))
.on('change', cache.update('partials', function (filePath) {
return filePath.replace(/.html$/, '.js')
}));
name
(required): the cache name
Returns the most recent mtime (modified time) of all files in specified cache, can be used in lieu of gulp.lastRun()
.
name
(required): the cache name
Returns the last time a cache was updated, can also be used in lieu of gulp.lastRun()
.
name
(optional): the cache name
Return cache named name
, or all cached data if name
is not supplied.
cache.get(cacheName)
returns a Cache object.