gulp-memory-cache v0.3.0
gulp-memory-cache
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.
Usage
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'));API
cache(name, save)
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.
cache.save(name)
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).
cache.flush(name)
name(required): the cache name
Flush (remove all files) cache name. Handy to force a stream to process again all its files.
cache.forget(name, filePath, fn)
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().
cache.update(name, fn)
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')
}));cache.lastMtime(name)
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().
cache.lastUpdated(name)
name(required): the cache name
Returns the last time a cache was updated, can also be used in lieu of gulp.lastRun().
cache.get(name)
name(optional): the cache name
Return cache named name, or all cached data if name is not supplied.
Cache API
cache.get(cacheName) returns a Cache object.