Gulp 5, битые изображения при копировании и ошибки шрифтов. Как исправить?

При копировании изображений в Gulp 5 на выходе они получаются битыми. Рассмотрим простое решение, без необходимости откатываться на 4 версию.

Проблема

Когда мы копируем изображения с исходников (папка src), в папку проекта ( build ), то на выходе получаются битые изображения.

Например так:

export const images = () => {
  return gulp.src(./src/images/**/*.*')
    //ваши настройки
    .pipe(gulp.dest(./build/images/))
}

Тоесть обычное копирование 🙂
При это мы получаем непонятный бинарный файл с аналогичным названием, но уже далеко не картинку 🙁

Эта проблема с Gulp 5.0 если понизить до 4 будет все работать.

Решение

В Gulp 5.0 нужно применить опцию {encoding: false} непосредственно к вызову функции  src().
Это сообщает Gulp не конвертировать данные в текстовую кодировку.
Например :

export const images = () => {
  return gulp.src(./src/images/**/*.*',{encoding: false})
    //ваши настройки
    .pipe(gulp.dest(./build/images/))
}

На 5.0 проблема в том что по умолчанию .dest в gulp обрабатывает файлы как текстовые и в кодировке utf-8 поэтому в тасках на конвертирование шрифтов, оптимизацию картинок нужно писать src('./src/fonts/**/*.ttf',{encoding:false}) чтобы получаемые файлы были в буфере в двоичном виде.