【问题标题】:Generating and Optimizing Webp via Gulp通过 Gulp 生成和优化 Webp
【发布时间】:2017-09-24 12:48:30
【问题描述】:

我正在使用包含 imagemin 的 generator webapp。我还在构建中添加了imagemin-webpgulp-webp

我不确定如何实施。除了添加 webp 之外,我还想保留原始 jpg 和 png 图像,并在运行 gulp build 任务时优化所有这些图像。

我对@9​​87654324@感到困惑。

如何根据我当前的设置实现它:

const webp = require('gulp-webp');
const imageminWebp = require('imagemin-webp');

gulp.task('images', () => {
    return gulp.src('app/images/**/*')
    .pipe(webp())
    .pipe($.cache($.imagemin()))
    .pipe(gulp.dest('dist/images'));
});

目前,这只是生成未优化的 webp 文件,不会打包任何原始 jpg 和 png 文件。

【问题讨论】:

    标签: optimization gulp yeoman-generator webp


    【解决方案1】:

    这是我在 2021 年的选择。如果你有什么问题,尽管问我。

    const {src, dest, parallel, series, watch} = require('gulp');
    const imagemin = require('gulp-imagemin');
    const webp = require('imagemin-webp');
    const extReplace = require('gulp-ext-replace');
    
    const exportWebP = () => {
      return src(['./src/img/**/*.jpg', './src/img/**/*.png'], {base: 'src'})
        .pipe(imagemin([
          webp({
            quality: 60,
          })
        ]))
        .pipe(extReplace('.webp'))
        .pipe(dest('./app/'))
    }
    
    watch(['./src/img/**/*.jpg', './src/img/**/*.png'], exportWebP);
    exports.default = series(parallel(exportWebP));

    【讨论】:

      【解决方案2】:

      您必须包含 gulp-clone 才能将原始文件与 webp 对应项一起输出。它看起来像这样:

      const webp = require('gulp-webp');
      const imageminWebp = require('imagemin-webp');
      const clone = require('gulp-clone');
      const clonesink = clone.sink();
      
      gulp.task('images', () => {
          return gulp
              .src('app/images/**/*')
              .pipe($.cache($.imagemin())) // optimize images before converting
              .pipe(clonesink) // start stream
              .pipe(webp()) // convert images to webp and save a copy of the original format
              .pipe(clonesink.tap()) // close stream and send both formats to dist
              .pipe(gulp.dest('dist/images'));
      });
      

      【讨论】:

      • 你好@Morgan,已经很久没有评论过了,但是当我开始 gulp 时,这个过程对我来说非常好,但是当我的手表功能捕获新图像时,我收到这个错误 @987654323 @。它只发生在手表上,当我开始这个过程时,一切都会正确生成。
      猜你喜欢
      • 2015-06-16
      • 1970-01-01
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 2021-08-04
      • 2020-03-06
      相关资源
      最近更新 更多