2016-06-23 5 views
0

Ich habe Probleme mit gulp-imagemin 5.2.1, ein anderes Plugin als die Standardeinstellungen zu verwenden. Ich muss JPEGs mehr komprimieren als das Standard-JPEGTRAN-Plugin mit seiner verlustfreien Komprimierung. Ich wollte mit imagemin-jpeg-recompress 5.1.0 versuchen. Hier ist meine Aufgabe schluck:gulp-imagemin nicht mit Plugins Option

var imagemin = require('gulp-imagemin'); 
var imageminJpegRecompress = require('imagemin-jpeg-recompress'); 
gulp.task('imagemin', function(){ 
    return gulp.src(['./app/img/**'], {base:'app'}) 
    .pipe(plumber({errorHandler: onerror})) 
    .pipe(imagemin({ 
     plugins:[imageminJpegRecompress({ 
     quality: 'low' 
     })] 
    })) 
    .pipe(gulp.dest('dist/app/')); 
}); 

Als ich das laufen, bekomme ich genau die gleichen Bilder, die ich vor keine Änderungen bekam, wie die Dinge zusammengedrückt werden. Es sieht so aus, als würde es nicht einmal die "plugins" -Option sehen oder es laufen immer noch alle Standard-Plugins nach dem jpegRecompress. Wie soll ich die imagemin Plugins in meiner Schluckdatei aufrufen?

Hinweis: Sie haben die Option "Plugins" geändert. Die "plugins" -Option wurde früher "use" genannt.

Antwort

0

Sie haben Recht, dass die Option "use" in "plugins" umbenannt wurde, aber nachdem ich dieses Thema selbst untersucht habe, wurde mir klar, dass gulp-imagemin (der man Sie verwenden) hat eine etwas andere Syntax imagemin in Bezug auf Plugin-Konfiguration Eigenständig *

Diese funktionieren sollte.

gulp.task('imagemin', function() { 
    return gulp.src(['./app/img/**'], {base:'app'}) 
    .pipe(plumber({errorHandler: onerror})) 
    .pipe(imagemin([ 
     imagemin.gifsicle(), 
     imageminJpegRecompress({ quality: 'low' }), 
     imagemin.optipng(), 
     imagemin.svgo() 
    ])) 
    .pipe(gulp.dest('dist/app')); 
}); 

Beachten Sie, dass, da ich in einem benutzerdefinierten Plugins Array bin vorbei, ich bin erklärt Plugins für die anderen Dateitypen, nach den Anweisungen auf der gulp-imagemin Github-Seite, in diesem Fall deklariere ich einfach die Standardwerte, außer jpeg-recomp ess, deren Optionen ich in einem Objekt übergebe.

Quellen:
API Change with diff example
Relevant discussion on the project's issue tracker

* Abgesehen auf Versionen: Die neueste Version von imagemin ist 5.2.x, hat während schlucke-imagemin separate Versionierung, bei 3.0.x Verwirrender ist imagemin-jpeg-recompress 5.1.0; Diese Kombinationen helfen nicht viel, können aber hilfreich sein, wenn Sie die Diffs auf den Seiten jedes Projekts nachschlagen.