Gulp v4 - 任务订购问题

时间:2017-07-24 10:00:31

标签: javascript gulp gulp-rev

我试图用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

1 个答案:

答案 0 :(得分: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)。