gulp-rev-rewrite
Rewrite references to assets revisioned by
gulp-rev
This plugin is an improved and maintained fork of gulp-rev-replace.
Install
npm install gulp-rev-rewrite --save-dev
Only LTS and current releases of Node are supported.
Usage
const { src, dest } = require('gulp');
const rev = require('gulp-rev');
const revRewrite = require('gulp-rev-rewrite');
function revision() {
return src('dist/**/*.{css,js}')
.pipe(rev())
.pipe(src('dist/**/*.html'))
.pipe(revRewrite())
.pipe(dest('dist'));
}
exports.default = revision;
Alternatively:
- Revision your assets and create an asset manifest.
- Collect the revisioned paths from the manifest and rewrite references to them
const { readFileSync } = require('fs');
const { src, dest, series } = require('gulp');
const rev = require('gulp-rev');
const revRewrite = require('gulp-rev-rewrite');
// Step 1
function revision() {
return src('dist/assets/**/*.{css,js}')
.pipe(rev())
.pipe(dest('dist/assets'))
.pipe(rev.manifest())
.pipe(dest('dist/assets'));
}
// Step 2
function rewrite() {
const manifest = readFileSync('dist/assets/rev-manifest.json');
return src('dist/**/*.html')
.pipe(revRewrite({ manifest }))
.pipe(dest('dist'));
}
exports.default = series(revision, rewrite);
API
revRewrite([options])
options
Type: Object
manifest
Type: Buffer
(e.g., fs.readFileSync()
)
Read JSON manifests written out by rev
. Allows replacing filenames that were revisioned prior to the current task.
prefix
Type: String
Add a prefix to each replacement.
modifyUnreved, modifyReved
Type: Function
Modify the name of the unreved/reved files before using them. The function receives the unreved/reved filename as the first argument, and the Vinyl object of the current file as the optional second argument.
License
MIT © James K Nelson, Thomas Vantuycom