В файлах image.mjs и copy.mjs я использую gulp.dest
Но он ломает файлы при копировании, то есть копирование выполняется по правильному пути, но файлы в итоге становятся большими по размеру и становятся неработоспособными
В случае с изображениями этого не происходит с файлами .svg, но происходит с файлами .png.
Я использую шрифты формата woff и woff2.
Я использую следующие версии пакетов:
"browser-sync": "^3.0.2",
"del": "^7.1.0",
"gulp": "^5.0.0",
"gulp-autoprefixer": "^9.0.0",
"gulp-clean-css": "^4.3.0",
"gulp-cli": "^3.0.0",
"gulp-prettier": "^6.0.0",
"gulp-pug": "^5.0.0",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.4",
"gulp-sass": "^5.1.0",
"path": "^0.12.7",
"pug": "^3.0.2",
"sass": "^1.72.0"
Это мой gulpfile.mjs:
import gulp from "gulp";
import path from "./gulp/config/path.mjs";
import plugins from "./gulp/config/plugins.mjs";
global.app = {
path: path,
gulp: gulp,
plugins: plugins,
};
import copy from "./gulp/tasks/copy.mjs";
import reset from "./gulp/tasks/reset.mjs";
import pug from "./gulp/tasks/pug.mjs";
import server from "./gulp/tasks/server.mjs";
import scss from "./gulp/tasks/scss.mjs";
import image from "./gulp/tasks/image.mjs";
import js from "./gulp/tasks/js.mjs";
import format from "./gulp/tasks/format.mjs";
gulp.task("format", format);
function watcher() {
gulp.watch(path.watch.fonts, copy);
gulp.watch(path.watch.pug, pug);
gulp.watch(path.watch.scss, scss);
gulp.watch(path.watch.img, image);
gulp.watch(path.watch.js, js);
}
const mainTasks = gulp.parallel(copy, pug, scss, image, js);
const dev = gulp.series(reset, mainTasks, gulp.parallel(watcher, server));
gulp.task("default", dev);
Это мой файл image.mjs:
const image = () => {
return app.gulp
.src(app.path.src.img)
.pipe(app.gulp.dest(app.path.build.img))
.pipe(app.plugins.browsersync.stream());
};
export default image;
И это мой файл copy.mjs:
const copy = () => {
return app.gulp
.src(app.path.src.fonts)
.pipe(app.gulp.dest(app.path.build.fonts));
};
export default copy;
Я попробовал использовать плагин gulp-copy вместо gulp.dest
, но по какой-то причине он не сработал.
Я нашел похожую проблему, но решение оттуда мне не помогло
У меня возникла та же проблема при попытке сжать некоторые изображения или переместить папку со шрифтами. После изменения версии Gulp на 4.0.2 все заработало как положено.
Обновлено: найдено решение в проблеме , в gulp версии 5 для «кодировки» должно быть установлено значение «false» при работе с двоичными файлами:
gulp.src(path, {encoding: false})