2017-04-26 86 views
1

我正在使用gulp-imagemin一段時間,但幾個月前我注意到我的壓縮圖像不滿意google的頁面速度。我嘗試了所有設置的組合,但沒有結果。也嘗試了imagemin-cli和直接jpegtran - 都是一樣的,在大圖像上它提供了2-5%的壓縮率,而tinyfy則提供了50%。當我使用某些雲優化器時(它可以提供正確的壓縮)。Imagemin對於谷歌頁面速度見解不夠?

我現在的任務,一飲而盡看起來像:

gulp.task('imagemin', function() { 
     return gulp.src(input_files) 
      .pipe(newer(output_path)) 
      .pipe(imagemin([ 
       imagemin.gifsicle({interlaced: true}), 
       imagemin.jpegtran({progressive: true}), 
       imagemin.optipng({optimizationLevel: 7}), 
       imagemin.svgo({plugins: [{removeViewBox: true}]}) 
      ],{verbose:true}).on('error', gutil.log)) 
      .pipe(gulp.dest(output_path)); 
}); 

回答

2

盡我所能得到(我想無損):

const imageminMozJpeg = require(config.nm + 'imagemin-mozjpeg'); 
const imageminPngQuant = require(config.nm + 'imagemin-pngquant'); 
gulp.task('imagemin', function() { 
    return gulp.src(input_files) 
     .pipe(newer(output_path)) 
     .pipe(imagemin([ 
      imagemin.gifsicle({interlaced: true}), 
      imageminMozJpeg(), 
      imageminPngQuant({quality:'85-100'}), 
      imagemin.svgo({plugins: [{removeViewBox: true}]}) 
     ])) 
     .pipe(gulp.dest(output_path)); 
}); 

谷歌仍不滿意響應圖像,當實際規模是更大然後對一些谷歌網頁速度分辨率顯示大小=/

+0

你試過srcset了嗎? https://developer.mozilla.org/de/docs/Web/HTML/Element/img#Example_3_Using_the_srcset_attribute – moesphemie

+0

是的,但只適用於視網膜。我知道它適合大小斷點,但現在對於我來說很難改變工作流程,並根據響應規則製作多個圖像(一些圖像變小,一些更大的圖像寬度變得更小)。所以如果有些東西沒有手動調整圖像大小,那就太好了。請讓我知道你是否有解決方案。 – MadDocNC

2

我解決它通過使用https://www.npmjs.com/package/imagemin-jpeg-recompress,可以在咕嘟咕嘟地使用了。

我使用ES2015和咕嘟咕嘟4在我的情況和回調駐留在自己的文件的任務,但是你應該看看我的代碼得到的想法:

'use strict'; 

import config from '../config'; 
import gulp from 'gulp'; 
import imagemin from 'gulp-imagemin'; 
import imageminJpegRecompress from 'imagemin-jpeg-recompress'; 

export default function() { 
    return gulp.src([config.jekyll.imagedir + config.glob.deep.image]) 
    .pipe(imagemin([ 
     imagemin.gifsicle({interlaced: true}), 
     imageminJpegRecompress({progressive: true, method: 'smallfry', quality: 'veryhigh'}), 
     imagemin.optipng(), 
     imagemin.svgo({plugins: [{cleanupIDs: false}]}) 
    ], {verbose: true})) 
    .pipe(gulp.dest(config.jekyll.imagedir)); 
}; 

但要知道,這意味着使用有損算法壓縮JPEG文件,而https://github.com/imagemin/imagemin-jpegtran(默認情況下用於gulp-imagemin)僅進行無損轉換。

+0

我目前上mozjpeg和pngquant顯示更好的結果 – MadDocNC

+0

我試過mozjpeg,但它沒有產生更好的結果。但說實話,我沒有真的嘗試不同的配置。我可以問一下你使用的配置嗎? – derbenni

+0

無法在註釋中放置代碼。看看答案。 – MadDocNC