Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including gulp-rev-collector with all npm packages installed. Try it out:

var gulpRevCollector = require("gulp-rev-collector")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

gulp-rev-collector v1.3.3

Static asset revision data collector from manifests, generated from different streams, and replace their links in html template.

Build Status Dependencies devDependencies NPM version



Static asset revision data collector from manifests, generated from different streams, and replace their links in html template.


$ npm install --save gulp-rev-collector


We can use gulp-rev to cache-bust several assets and generate manifest files for them. Then using gulp-rev-collector we can collect data from several manifest files and replace links to assets in html templates.

var gulp         = require('gulp');
var rev = require('gulp-rev');

gulp.task('css', function () {
    return gulp.src('src/css/*.css')
        .pipe( rev.manifest() )
        .pipe( gulp.dest( 'rev/css' ) );

gulp.task('scripts', function () {
    return gulp.src('src/js/*.js')
        .pipe( rev.manifest() )
        .pipe( gulp.dest( 'rev/js' ) );


var revCollector = require('gulp-rev-collector');
var minifyHTML   = require('gulp-minify-html');

gulp.task('rev', function () {
    return gulp.src(['rev/**/*.json', 'templates/**/*.html'])
        .pipe( revCollector({
            replaceReved: true,
            dirReplacements: {
                'css': '/dist/css',
                '/js/': '/dist/js/',
                'cdn/': function(manifest_value) {
                    return '//cdn' + (Math.floor(Math.random() * 9) + 1) + '.' + '' + '/img/' + manifest_value;
        }) )
        .pipe( minifyHTML({
            }) )
        .pipe( gulp.dest('dist') );



Type : String

It is a filename for collecded and merged manifest data in json format.


Type : Boolean

You set a flag, replaceReved, which will replace alredy replaced links in template's files. Default value is false.


Type : Object

Specifies a directories replacement set. gulp-rev creates manifest files without any info about directories. E.c. if you use dirReplacements param from Usage example, you get next replacement:

"/css/style.css" => "/dist/css/style-1d87bebe.css"
"/js/script1.js" => "/dist/script1-61e0be79.js"
"cdn/image.gif"  => "//"


Type : String

It is pattern for define reved files suffixes. Default value is '-[0-9a-f]{8,10}-?'. This is necessary in case of e.c. gulp-rename usage. If reved filenames had different from default mask.


Type : Object

If You use some methods to modify the rev_manifest.json after use gulp-rev and get a result like this:

    "assets/less/common.less": "assets/css/common-2c0d21e40c.css"

It means that keys and values in the rev_manifest.json have different ext : less & css.

You can define extentions maping rules for correct manifest file processing.

Default value is:

    '.scss': '.css',
    '.less': '.css',
    '.jsx': '.js'

Works with gulp-rev-collector


MIT © Oleksandr Ovcharenko

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free