Madeas
@Madeas
UI / UX Designer, Frontend Developer

Почему gulp-imagemin не сжимает изображения?

В вижл студии собираю сайт, сделал все, но осталось оптимизировать изображения. Делаю через Галп-имейджмин, но результата нет.

Таски:
const cache = require('gulp-cached');
const 
    imagemin = require('gulp-imagemin'),
    imageminMozjpeg = require('imagemin-mozjpeg'),
    imageminOptipng = require('imagemin-optipng'),
    imageminSvgo = require('imagemin-svgo'),
    imageminWebp = require('imagemin-webp');

gulp.task('imagemin', () => {
    return gulp.src(['*.jpg','*.png','*.svg'].map(file => `build/src/**/${file}`))
        .pipe(cache(imagemin([
            // imagemin.gifsicle({interlaced: true}),
            imagemin.jpegtran({progressive: true}),
            // imagemin.optipng({optimizationLevel: 5}),
            imagemin.optipng({optimizationLevel: 7}),
            
            imageminMozjpeg({progressive: true}),
            imageminOptipng({optimizationLevel: 7}),
            imageminSvgo({
                plugins: [
                    {removeViewBox: false},
                ]
            }),
            imageminWebp({quality: 50})
        ])))
        .pipe(gulp.dest('src/test'))
});


Подскажите, что не так настроил? Не сжимает изображения совсем.

В консоли
[09:34:21] Using gulpfile ~/devsite/gulpfile.js
[09:34:21] Starting 'imagemin'...
[09:34:22] Finished 'imagemin' after 225 ms
  • Вопрос задан
  • 601 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Etiene
У меня была ситуация, когда imagemin не "видел" все картинки. Проблема оказалась в том, что расширения некоторых файлов были с использованием заглавного шрифта. Проблема решилась, когда прописал расширения в src и watch Вот так /img/**/*.{jpg,png,svg,gif,ico,webp,JPG,PNG,SVG,GIF,ICO,WEBP}",
Ответ написан
Комментировать
@runprogr
var newer = require('gulp-newer');
const imagemin = require('gulp-imagemin');
const imageminPngquant = require('imagemin-pngquant');
const imageminMozjpeg = require('imagemin-mozjpeg');

var img_bf_min = './src/img-source/*', // Изображения для минимайза
img_af_min = './src/img/'; // Изображения минимизированные

gulp.task('imgmin', function() {
    return gulp.src(img_bf_min)
        .pipe(newer(img_bf_min))
        .pipe(imagemin([
            imageminPngquant(),
            imageminMozjpeg({
                 progressive: true
            })
            ],{
            verbose: true
        }))
        .pipe(gulp.dest(img_af_min))
});


Пользуюсь такой настройкой. Все работает отлично. Можете сделать по аналогии.
Ответ написан
Ваш ответ на вопрос

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

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