Nonstop Perpetual Motion
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

gulp-revmanifest

1.1.0 • Public • Published

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

install

npm i gulp-revmanifest

Downloadsweekly downloads

82

version

1.1.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability