Gulp rev-del未删除文件

xfb7svmp  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(173)

是我理解错了还是有什么地方不对?
我有一段代码

gulp.task("minifyScripts", function () {
  return gulp.src("assets/scripts/*.js")
    .pipe(uglify())
    .pipe(rev())
    .pipe(gulp.dest('assets/scripts/min'))
    .pipe(rev.manifest())
    .pipe(revDel())
    .pipe(gulp.dest('assets/scripts'))
    .pipe(livereload())
    .pipe(browserSync.stream());
});

我的理解是,这应该删除旧的.js文件时,一个新的哈希创建,但它不是...
你知道吗?非常感谢!

laawzig2

laawzig21#

您需要在选项中指定dest,或者在清单选项中指定base-除非您要将所有内容都写入根目录。
pipe(revDel({dest: "assets/scripts/min"})

roejwanj

roejwanj2#

看起来rev-del有很多用户,包括我自己,他们无法在gulp-rev对旧的静态文件进行哈希处理后获得删除旧静态文件的插件。
切换到gulp-rev-delete-original只需OOB即可。
在OP的用例中,更新的解决方案将是:

const revDel = require("gulp-rev-delete-original")

gulp.task("minifyScripts", function () {
  return gulp.src("assets/scripts/*.js")
    .pipe(uglify())
    .pipe(rev())
    .pipe(revDel()) // call just after rev()
    .pipe(gulp.dest('assets/scripts/min'))
    .pipe(rev.manifest())
    //.pipe(revDel()) ==> move to just after rev()
    .pipe(gulp.dest('assets/scripts'))
    .pipe(livereload())
    .pipe(browserSync.stream());
});

相关问题