gulp-revmanifest
v1.1.0
Published
Generate a rev-manifest file, mapping original paths to revisioned counterparts.
Downloads
1,817
Maintainers
Readme
gulp-rev-manifest
Generate a
rev-manifest.json
file, mapping original paths to revisioned counterparts.
Make sure to set the files to never expire for this to have an effect.
Install
This package expects you to have gulp-rev
installed.
$ npm install --save-dev gulp-revmanifest
Usage
var gulp = require('gulp');
var rev = require('gulp-rev');
var revManifest = require('gulp-revmanifest');
gulp.task('default', function () {
return gulp.src('src/*.css')
.pipe(rev())
.pipe(revManifest())
.pipe(gulp.dest('dist'));
});
API
revManifest([path], [options])
path
Type: string
Default: "rev-manifest.json"
Manifest file path.
options.base
Type: string
Default: process.cwd()
Override the base
of the manifest file.
Note: This value is stripped from your destination path.
options.cwd
Type: string
Default: process.cwd()
Override the cwd
(current working directory) of the manifest file.
options.merge
Type: boolean
Default: false
Merge existing manifest file.
options.transformer
Type: object
Default: JSON
An object with parse
and stringify
methods. This can be used to provide a
custom transformer instead of the default JSON
for the manifest file.
Examples
var gulp = require('gulp');
var rev = require('gulp-rev');
var revManifest = require('gulp-revmanifest');
gulp.task('default', function () {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
return gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(gulp.dest('build/assets')) // copy original assets to build dir
.pipe(rev())
.pipe(gulp.dest('build/assets')) // write rev'd assets to build dir
.pipe(revManifest())
.pipe(gulp.dest('build/assets')); // write manifest to build dir
});
An asset manifest will be written to build/assets/rev-manifest.json
:
{
"css/unicorn.css": "css/unicorn-d41d8cd98f.css",
"js/unicorn.js": "js/unicorn-273c2cin3f.js"
}
By default, rev-manifest.json
will be replaced as a whole. To merge with an existing manifest, pass merge: true
and the output destination (as base
) to rev.manifest()
:
var gulp = require('gulp');
var rev = require('gulp-rev');
var revManifest = require('gulp-revmanifest');
gulp.task('default', function () {
// by default, gulp would pick `assets/css` as the base,
// so we need to set it explicitly:
return gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
.pipe(rev())
.pipe(gulp.dest('build/assets'))
.pipe(revManifest({
base: 'build/assets', // stripped from the destination path
merge: true // merge with the existing manifest (if one exists)
}))
.pipe(gulp.dest('build/assets'));
});
You can optionally call revManifest('manifest.json')
to give it a different path or filename.
Integration
For more info on how to integrate gulp-rev-manifest into your app, have a look at the integration guide.
License
MIT © Sindre Sorhus