Как правильно настроить gulp-image-resize?

Хочу через gulp прогнать много картинок. Те из них, которые больше 2000х2000 пикселей, должны уменьшаться до этого размера.
windows 10x64

подключаю gulp-image-resize ( предварительно установил imagemagick и GraphicsMagick )

сама задача
gulp.task('imgresize', function () {
   return gulp.src('src/img/')
	    .pipe(imageresize({ 
	      width : 100,
	      height : 100,
	      crop : true,
	      upscale : false
	    }))
	   .pipe(gulp.dest('build/img/'));
});


изначально структура файлов такая
d39312e2176c4910be043eb97e4a6a17.png

после выполнения задачи:
2e73658f6fa34412985422486f3004aa.png
мне не понятно почему создается дополнительная вложенность img и нет никаких картинок в папке build

более того, если прописать путь
gulp.src("src/img/*.*")
выдает ошибку
[16:28:27] Starting 'imgresize'...

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: Error: write EPIPE
    at finish (d:\html\working\arplan\node_modules\gulp-image-resize\node_modules\gulp-gm\index.js:40:21)
    at gm.<anonymous> (d:\html\working\arplan\node_modules\gulp-image-resize\node_modules\async\lib\async.js:485:30)
    at gm.emit (events.js:118:17)
    at gm.<anonymous> (d:\html\working\arplan\node_modules\gulp-image-resize\node_modules\gulp-gm\node_modules\gm\lib\getters.js:70:16)
    at Socket.cb (d:\html\working\arplan\node_modules\gulp-image-resize\node_modules\gulp-gm\node_modules\gm\lib\command.js:318:16)
    at Socket.g (events.js:199:16)
    at Socket.emit (events.js:107:17)
    at onwriteError (_stream_writable.js:317:10)
    at onwrite (_stream_writable.js:335:5)
    at WritableState.onwrite (_stream_writable.js:105:5)
  • Вопрос задан
  • 3443 просмотра
Пригласить эксперта
Ответы на вопрос 2
Zoxon
@Zoxon
Веб-разработчик
1. Поменяйте return gulp.src('src/img/') на return gulp.src('src/img/**/*.{jpg,png}'))
2. Попробуйте использовать imageMagick, а не GraphicsMagick (imageMagick: true)
3. Дополнительно добавьте оптимизацию с gulp-changed
var changed = require("gulp-changed");

gulp.task('imgresize', function () {
   return gulp.src('src/img/')
      .pipe(changed("build"))
      .pipe(imageresize({ 
        width : 100,
        height : 100,
        crop : true,
        upscale : false
      }))
     .pipe(gulp.dest('build/img/'));
});
Ответ написан
@timfcsm
вы пишете путь к папке, а не к картинкам...
gulp.src('src/img/**/*.*')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы