Gulp-rev заменяет файлы сгенерированным хешем

Я начал использовать Gulp и хочу создать задачу, которая переименовывает файлы (js,css) с помощью хэша, а затем вставляет их обратно в html.

На самом деле у меня есть две функции, которые делают то, что я хочу, но я не могу понять, как удалить старый файл и сохранить только новые хэшированные файлы js и css.

Некоторые могли бы дать мне подсказку? Это мой код прямо сейчас:

obs: переменная 'config' содержит расположение папок

gulp.task('prod:rev',['prod:revision'],function() { 
  var manifest = gulp.src(config.prod.manifest);
  return gulp
    .src(config.prod.header)
    .pipe(plugin.revReplace({manifest: manifest}))
    .pipe(gulp.dest('../'));
});

gulp.task('prod:revision',function(){
  var revJs = gulp
   .src(config.scripts.build+'*.js')
   .pipe(plugin.rev())
   .pipe(gulp.dest(config.scripts.build))
   .pipe(plugin.rev.manifest({merge: true}))
   .pipe(gulp.dest(config.prod.path));

  var revCss = gulp
   .src(config.styles.build+'*.css')
   .pipe(plugin.rev())
   .pipe(gulp.dest(config.styles.build))
   .pipe(plugin.rev.manifest({merge: true}))
   .pipe(gulp.dest(config.prod.path));

  return merge(revJs,revCss);

3 ответа

В настоящее время у меня есть открытый вопрос по аналогичной проблеме - я правильно восстановил файлы, но не смог вставить их в html с помощью gulp-useref (вы можете проверить предполагаемый для работы метод в моем вопросе относительно useref). Я подозреваю некоторую нечестную игру с каталогами, которые я использую, но сейчас я решил использовать другую схему очистки кэша:

var cb = Math.random();

....
.pipe($.replace('dist/css/lib.css', 'dist/css/lib.css?cb=' + cb))
....

Это может быть не тот ответ, который вы хотите, но это может быть ответ, который вам нужен.:)

Согласно gulp-rev readme.md звучит так, как будто вы хотите использовать gulp-rev-delete-original удалить неразделенные оригиналы.

Попробуйте поставить это после вызова.pipe (rev ())

const revDelete = require ('gulp-rev-delete-original');

....pipe (revDelete ())...

Это приведет к удалению "хэшированных" файлов.

Другие вопросы по тегам