# gulp-rev-collector

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

Latest version **1.3.3** (published 2020-08-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-rev-collector
pnpm add gulp-rev-collector
yarn add gulp-rev-collector
bun add gulp-rev-collector
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.3.3 |
| Published | 2020-08-04 |
| First published | 2014-06-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.10.0 |
| Dependencies | 4 |
| Unpacked size | 13 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 148 |
| Author | Oleksandr Ovcharenko |
| Maintainers | shonny.ua |
| Keywords | gulpplugin, gulp, rev, revision, version, versioning, static, asset, assets, collect, collector |

## Links

- npm: https://www.npmjs.com/package/gulp-rev-collector
- Repository: https://github.com/shonny-ua/gulp-rev-collector
- Issues: https://github.com/shonny-ua/gulp-rev-collector/issues
- npm.io page: https://npm.io/package/gulp-rev-collector

## Dependencies (4)

- [vinyl](https://npm.io/package/vinyl.md) ^2.2.0
- [through2](https://npm.io/package/through2.md) ^2.0.0
- [underscore](https://npm.io/package/underscore.md) ^1.10.2
- [plugin-error](https://npm.io/package/plugin-error.md) ^1.0.1

## Recent versions

- 1.3.3 (latest) — 2020-08-04
- 1.3.2 — 2020-08-04
- 1.3.1 — 2018-04-06
- 1.3.0 — 2018-04-06
- 1.2.4 — 2018-01-05
- 1.2.3 — 2017-11-13
- 1.2.2 — 2017-05-26
- 1.2.1 — 2017-05-13
- 1.2.0 — 2017-05-12
- 1.1.1 — 2016-12-22
- 1.1.0 — 2016-12-21
- 1.0.5 — 2016-07-06
- 1.0.4 — 2016-06-10
- 1.0.3 — 2016-04-04
- 1.0.2 — 2015-08-22
- … 15 more at https://npm.io/package/gulp-rev-collector/versions

## README

[![Build Status](https://travis-ci.org/shonny-ua/gulp-rev-collector.svg)](https://travis-ci.org/shonny-ua/gulp-rev-collector)
[![Dependencies](https://david-dm.org/shonny-ua/gulp-rev-collector.svg)](https://david-dm.org/shonny-ua/gulp-rev-collector)
[![devDependencies](https://david-dm.org/shonny-ua/gulp-rev-collector/dev-status.svg)](https://david-dm.org/shonny-ua/gulp-rev-collector#info=devDependencies&view=table)
[![NPM version](https://badge.fury.io/js/gulp-rev-collector.svg)](http://badge.fury.io/js/gulp-rev-collector)

# [gulp](https://github.com/wearefractal/gulp)-rev-collector

[![NPM](https://nodei.co/npm/gulp-rev-collector.png?downloads=true&stars=true)](https://nodei.co/npm/gulp-rev-collector/)

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

## Install

```sh
$ npm install --save gulp-rev-collector
```

## Usage

We can use [gulp-rev](https://github.com/sindresorhus/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.

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

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

gulp.task('scripts', function () {
    return gulp.src('src/js/*.js')
        .pipe(rev())
        .pipe(gulp.dest('dist/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) + '.' + 'exsample.dot' + '/img/' + manifest_value;
                }
            }
        }) )
        .pipe( minifyHTML({
                empty:true,
                spare:true
            }) )
        .pipe( gulp.dest('dist') );
});
```

### Options

#### collectedManifest

Type : `String`

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

#### replaceReved

Type : `Boolean`

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

#### dirReplacements

Type : `Object`

Specifies a directories replacement set. [gulp-rev](https://github.com/sindresorhus/gulp-rev) creates manifest files without any info about directories. E.c. if you use dirReplacements param from [Usage](#usage) example, you get next replacement:

```
"/css/style.css" => "/dist/css/style-1d87bebe.css"
"/js/script1.js" => "/dist/script1-61e0be79.js"
"cdn/image.gif"  => "//cdn8.example.dot/img/image-35c3af8134.gif"
```

#### revSuffix

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](https://github.com/hparra/gulp-rename) usage. If reved filenames had different from default mask.

#### extMap

Type : `Object`

If You use some methods to modify the rev_manifest.json after use [gulp-rev](https://github.com/sindresorhus/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

- [gulp-rev](https://github.com/sindresorhus/gulp-rev)

## License

[MIT](http://opensource.org/licenses/MIT) © [Oleksandr Ovcharenko](mailto:shonny.ua@gmail.com)

---
_Source: https://npm.io/package/gulp-rev-collector · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
