首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp-imagemin不使用插件选项

gulp-imagemin不使用插件选项
EN

Stack Overflow用户
提问于 2016-06-24 04:32:09
回答 1查看 1.6K关注 0票数 0

我很难让gulp ImageMin5.2.1使用不同于默认插件的插件。我需要比默认的jpegtran插件的无损压缩更多地压缩jpegs。我想试着使用imagemin jpeg-recompress 5.1.0。这是我的任务:

代码语言:javascript
复制
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/'));
});

当我运行这个程序时,我得到的图像与之前完全相同,压缩方式没有任何变化。它看起来甚至没有看到“插件”选项,或者可能它仍然在运行jpegRecompress之后的所有默认插件。我应该如何调用我的gulp文件中的imagemin插件?

注意:他们确实更改了"plugins“选项。"plugins“选项过去被命名为”use“。

EN

回答 1

Stack Overflow用户

发布于 2016-07-08 09:45:54

你说得对,"use“选项已经被重新命名为"plugins",然而在我自己研究了这个问题之后,我意识到,在插件配置方面,gulp-imagemin (你正在使用的那个)的语法与独立的imagemin略有不同。*

这应该是可行的:

代码语言:javascript
复制
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'));
});

请注意,由于我传入了一个自定义插件数组,因此我将根据gulp-imagemin页面上的说明为其他文件类型声明插件。在本例中,我只声明了缺省值,除了jpeg-recompress,我将其选项传递到一个对象中。

资料来源:

API Change with diff example

Relevant discussion on the project's issue tracker

*在版本方面: imagemin的最新版本是5.2.x,而gulp-imagemin有单独的版本,为3.0.x。更令人迷惑的是,imagemin-jpeg-recompress是5.1.0;这些组合不会有太大帮助,但在每个项目页面上查找差异时可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38001293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档