【问题标题】:Webpack (Encore): convert images to webp using image-webpack-loaderWebpack (Encore):使用 image-webpack-loader 将图像转换为 webp
【发布时间】:2019-04-28 06:23:34
【问题描述】:

我正在尝试使用 Webpack Encore 中的image-webpack-loader 插件将我的jpeg 图像转换为webp格式。以下配置成功缩小了我的文件,但没有将它们转换为 webp 图像。

webpack.config.js

test: /\.(gif|png|jpe?g|svg)$/i,
loader: 'image-webpack-loader',
options: {
   disable: true, //bypassOnDebug
   convertPathData: false,
   mozjpeg: { //works
      progressive: true,
      quality: '80-90'
    },
   webp: { //doesn't convert my images to webp
      quality: 75,
      enabled: true
   }
 }

如何使用插件image-webpack-loader 实现我想要的?或者我应该在这个插件旁边使用另一个插件吗?

【问题讨论】:

    标签: webpack webp webpack-encore


    【解决方案1】:

    说实话为时已晚,但对于未来的谷歌人来说:

    看起来 image-webpack-loader 中的信息有点误导。它可以做的是优化现有的 webp 文件以减小其大小。

    虽然前面的说法可能正确与否,但我还没有弄清楚如何使用这个加载器将图像转换为 webp。

    相反,我使用 imagemin-webp 生成 webps,然后将其导入到通过 image-webpack-loader 和 file-loader 传递的文件中。

    所以,最终的结果是这样的:

    import React from "react";
    import waveImgJpg from "Images/common/wave.jpg";
    import waveImgWebP from "Images/webp/wave.webp";
    import styles from "IndexStyles/mainContent.scss";
    
    export const MainContent = () => {
        return (
            <picture>
                <source className={styles.waveImg} srcSet={waveImgWebP} type="image/webp" />
                <img className={styles.waveImg} src={waveImgJpg} alt="beatiful wave" title="beatiful wave" />
            </picture>
        );
    };
    

    这段代码是我用来启动新项目的设置的一部分。

    所以,如果你有兴趣,你可以找到完整的 webpack.js 以及所有其他文件 here

    【讨论】:

      猜你喜欢
      • 2020-03-08
      • 2019-01-03
      • 2019-10-13
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多