0

我正在尝试使用 gulp-rev 和 gulp-revReplace 创建 cahe-buster,当我编译 javascript 时一切正常,但是主 css 文件的替换不能正常工作,替换总是需要旧的 rev- manifest.json 文件而不是由任务生成的新文件,我假设这与 gulp 系列中的任务顺序有关?因为代码几乎与 javascript 任务的代码相同,所以为什么它的工作方式不同?

这是我的 gulpfile.js https://github.com/AdamWojda/35_web_dev_chalange/blob/master/Gulpfile.js

4

1 回答 1

1

运行时如下所示:

| watch
|--
  | generate_js              generate_css
  |-- compress_javascript  |-- generate_styles
  |-- revreplace           |-- revreplace

有可能revreplace从一个任务重写manifest.json第二个任务的内容。jamesknelson在文档中使用反向方式

gulp.task("revision", ["dist:css", "dist:js"], function(){
    return gulp.src(["dist/**/*.css", "dist/**/*.js"])
        .pipe(rev())
        .pipe(gulp.dest(opt.distFolder))
        .pipe(rev.manifest())
        .pipe(gulp.dest(opt.distFolder))
})

每个revision任务首先执行dist:cssdist:js最后重写(一次)manifest.json。我建议改变任务的执行方式(watch -> revreplace -> generate_js && generate_css)。

于 2017-07-25T10:44:44.473 回答