gulp-rev-collector-concat
- Base on gulp-rev-collector, And has the same function as gulp-rev-collector.
- More than gulp-rev-collector of an new feature concat-asserts-feature .
- Another new feature: set
ignoreKeys
to skip special keys in mainfest object; - If the PR is merged in the future, The maintenance of this project will be abandoned!
Static asset revision data collector from manifests, generated from different streams, and replace their links in html template.
$ npm install --save gulp-rev-collector-concat
We can use gulp-rev to cache-bust several assets and generate manifest files for them. Then using gulp-rev-collector-concat 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())
.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-concat');
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') );
});
Type : Object
If you use some concat static path(for optimizing resource request reduction).
You may need convert /js/??/com/a.js,/com/b.js,/com/c.js
to /js/??/com/a-[revcode].js,/com/b-[revcode].js,/com/c-[revcode].js
Such as:
{
"/js/??": "/js",
"/css/??": "/css"
}
see concat-static-res-request information: http-nginx-concat
The concat static asserts should be wrapped in quotes ('|"). "/js/??/com/a.js,/com/b.js,/com/c.js"
Type: Array
Set ignoreKeys to skip some special keys in mainfest during doing rev.
Sucn as:
[
'some_path_u_dont_want_rev.js',
'some_path_u_dont_want_rev.css'
]
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" => "//cdn8.example.dot/img/image-35c3af8134.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'
}