Webpackを使って画像をwebpに変換してみた
webp-loaderとimagemin-webpをそれぞれ使ってみました
webpack初心者です。間違っていたら教えていただけるとありがたいです。
webp-loader
↑こちらの設定を参考にし、設定してみました。
yarn add -D webpack webpack-cli file-loader webp-loader
module.exports = {
mode: process.env.NODE_ENV || "development",
entry: {
a: "./images/a.png",
b: "./images/b.png",
c: "./images/c.png",
},
module: {
rules: [
{
test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: "file-loader",
options: {
name: "[path][name].[ext].webp",
},
},
"webp-loader?{quality: 50}",
],
}
]
},
};
この設定でyarn webpack
と実行し、webpackを実行するとdistフォルダ内にwebpが作成されました。
ただ、dist
フォルダに不要なa.js
なども一緒にできてしまうのでもうちょっといいやりがないかと思いました。
この例では、webpackのentryで直接画像ファイルを指定していますが、jsファイルで
import image01 from "./images/01.png";
などと読み込んでもwebpに変換するフローで処理してくれるので、jsファイルで読み込むファイルを全部一気にwebpに変換するというのもできました。
↓がやってみたサンプルです。
https://github.com/okumurakengo/webpack-webp-sample
imagemin-webp
imageminのWebPプラグインでやってみました
ほぼこちらの参考通りですが、試してみるとうまく変換することができました
参考:https://www.smashingmagazine.com/2018/07/converting-images-to-webp/#using-webpack
yarn add -D webpack webpack-cli imagemin-webpack-plugin imagemin-webp copy-webpack-plugin
ImageminWebpackPlugin = require("imagemin-webpack-plugin").default;
ImageminWebP = require("imagemin-webp");
CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
entry: "./src/index.js", // 空のファイルでOK
plugins: [
new CopyWebpackPlugin([{
from: "./src/images/*.png",
to: "./images/[name].webp"
}]),
new ImageminWebpackPlugin({
plugins: [
ImageminWebP({
quality: 75
})
]
})
]
};
yarn webpack #distフォルダにwebpに変換した画像が作成されている
読んでいただいてありがとうございましたm(_ _)m
Author And Source
この問題について(Webpackを使って画像をwebpに変換してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/okumurakengo/items/bf3a93dd512701164fc8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .