プロジェクト内の画像を最小化するために imagemin-webpack-plugin を使用しています。実行したときにのみ実行されますが、実行するnpm build.
たびに、すべての画像が再度最小化されますが、これは不要です。だから、変更された画像を最小限に抑えたいだけです。以前にgulpでやったことがありますが、webpackは初めてなので、何をすべきかよくわかりません。
また、このプラグインを使い始めて、開発中に新しいイメージを追加すると、ビルド コマンドを実行するまで表示されないことに気付きました。それがなぜなのかわからない、無関係な問題かもしれません...
const merge = require("webpack-merge");
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const common = require("./webpack.common.js");
const imageminMozjpeg = require('imagemin-mozjpeg');
const CopyWebpackPlugin = require('copy-webpack-plugin');
var ImageminPlugin = require('imagemin-webpack-plugin').default
module.exports = merge(common, {
mode: "production",
output: {
filename: "[name].[hash:5].js",
chunkFilename: "[id].[hash:5].css"
},
plugins: [
new CopyWebpackPlugin([{
from: 'src/images/',
to: 'images/'
}]),
new ImageminPlugin({
test: /\.(jpe?g|png|gif|svg)$/i,
pngquant: ({quality: 80}),
plugins: [imageminMozjpeg({quality: 50})]
})
]
});