- 引入插件
const rev = require('gulp-rev'), //生成版本号
revCollector = require('gulp-rev-collector'); //替换版本号
- 编写gulp任务
gulp.task('revHtml', function () {
return gulp.src(['rev/**/*.json', htmlSrc])
.pipe(revCollector({
replaceReved: true,
}))
.pipe(connect.reload()) //热加载
.pipe(gulp.dest('./dist'));
})
3.修改插件代码
- node_modules/gulp-rev
//manifest[originalFile] = revisionedFile; 135行
//改为
manifest[originalFile] = originalFile + '?v=' + file.revHash;
- node_modules/gulp-rev/node_modules/rev-path/index.js
//return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`); 第九行
//改为
return modifyFilename(pth, (filename, ext) => `${filename}${ext}`);
- node_modules/gulp-rev-collector
//var cleanReplacement = path.basename(json[key]).replace(new RegExp( opts.revSuffix ), '' ); 40行
//改为
let cleanReplacement = path.basename(json[key]).split('?')[0];
//regexp: new RegExp( prefixDelim + pattern, 'g' ), 174行
//改为
regexp: new RegExp( prefixDelim + pattern + '(\\?v=\\w{10})?', 'g' ),