gulp-revmanifest

Generate a rev-manifest file, mapping original paths to revisioned counterparts.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gulp-revmanifest
111.1.08 years ago8 years agoMinified + gzip package size for gulp-revmanifest in KB

Readme

gulp-rev-manifest Build Status Gitter
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