2

我是理解错了还是这里不正确?

我有这段代码

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 文件,但它不是......

你有什么主意吗?非常感谢!

4

2 回答 2

0

您需要在选项中指定 dest,或者在清单选项中指定 base — 除非您将所有内容都写入根目录。尝试:

pipe(revDel({dest: "assets/scripts/min"})

于 2021-02-02T12:40:45.083 回答
0

似乎有很多用户,包括我自己,在散列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());
});
于 2021-10-22T16:00:25.450 回答