Gulp 在原html文件上自动化添加js、css版本号的问题

发布于 2022-09-04 16:01:35 字数 1343 浏览 9 评论 0

gulpfile.js

//引入gulp和gulp插件
var gulp = require('gulp'),
//  runSequence = require('run-sequence'),
    rev = require('gulp-rev'),
    minifyCss = require('gulp-clean-css'),
    revCollector = require('gulp-rev-collector');

//定义css、js源文件路径
var cssSrc = 'css/index.css',
    jsSrc = 'js/*.js';


//CSS生成文件hash编码并生成 rev-manifest.json文件名对照映射
gulp.task('revCss', function(){
        gulp.src(cssSrc)
//      .pipe(minifyCss())     
        .pipe(rev())
        .pipe(rev.manifest())
        .pipe(gulp.dest('rev/css'));
});


//js生成文件hash编码并生成 rev-manifest.json文件名对照映射
gulp.task('revJs', function(){
    return gulp.src(jsSrc)
        .pipe(rev())
        .pipe(rev.manifest())
        .pipe(gulp.dest('rev/js'));
});


//Html替换css、js文件版本
gulp.task('revHtml', function () {
    return gulp.src(['rev/**/*.json', '*.html'])
        .pipe(revCollector())
        .pipe(gulp.dest(''));
});


//开发构建
//gulp.task('dev', function (done) {
//  condition = false;
//  runSequence(
//      ['revCss'],
//      ['revJs'],
//      ['revHtml'],
//      done);
//});


gulp.task('default', ['revCss','revJs','revHtml']);

第一次运行gulp时生成了rev-manifest.json文件但是并没有替换HTML页面上的版本号,在第二次运行时才会把版本号加上去,这是为何?
由于图片太大上传不了这里留一个连接,不明白的请看图片连接
图片

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

多情癖 2022-09-11 16:01:35

看了下你的构建过程,你应该在执行revHtml任务之前执行完revCss、revJs任务

gulp.task('revHtml', ['revCss','revJs'], function () {
    return gulp.src(['rev/**/*.json', '*.html'])
        .pipe(revCollector())
        .pipe(gulp.dest(''));
});
慢慢从新开始 2022-09-11 16:01:35

我想要的预期效果:在原目录结构下html文件代码

<link rel="stylesheet" href="../css/default.css?v=5a636d79c4"><script src="../js/app.js?v=3a0d844594"></script>

有没有不修改源码的方法????

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文