Revises the version of the resource referenced in the html.

- Works with: [gulp-hash-list](https://github.com/zzyss86/gulp-hash-list)
- Author: JsonZhou
- Author Blog: [http://www.2fz1.com/](http://www.2fz1.com/)

## Install

	npm install --save-dev gulp-asset-revision
	
## Usage

	var gulp = require('gulp');
	var hash = require('gulp-hash-list');
	var revision = require('gulp-asset-revision');
	
	gulp.task('hash', function() {
	    return gulp.src(['./src/**/*.js','./src/**/*.css'])
	        .pipe(hash({
	            "template": "{name}{ext}?hash={hash}"
	        }))
	        .pipe(gulp.dest('./dist'))
	        .pipe(hash.manifest('assets.json'))
	        .pipe(gulp.dest('./manifest'));
	});
	
	gulp.task('revision', ['hash'], function() {
	    return gulp.src(['./pages/*.html'])
	        .pipe(revision({
	            hasSuffix: false,
	            manifest: './manifest/assets.json'
	        }))
	        .pipe(gulp.dest('./pages/'));
	});
	
## API

### revision(options)

|option|default|description|
|---|---|---|
|manifest||**Required**, asset manifest file path|
|hasSuffix|false|If true,path matching will add `pathSuffix` |
|pathSuffix|-[0-9a-f]{8,10}|Support regular|

## hasSuffix和pathSuffix的说明

html中的js或css引用地址是通过`{name}{ext}`开头的正则进行匹配的，资源地址可以带参数，如：`{name}{ext}?param=value`。

当路径不是`{name}{ext}`开头时，`gulp-asset-revision`在扫描文件引用地址时，无法正确匹配地址，比如：`{name}-{hash}{ext}`。这时需要借助`pathSuffix`，帮助`gulp-asset-revision`更新好的匹配资源地址，`pathSuffix`的作用是匹配`{name}`和`{ext}`之间的这段，默认值是`-[0-9a-f]{8,10}`,需要设置`hasSuffix`为`true`时才能生效。`pathSuffix`支持字符串和正则表达式。



