// loader相关配置
module: {
rules: [
{
test: /\.(png|jpg|svg|gif|webp|JPG|jpe)$/,
type: 'asset',
parser: {
dataUrlCondition: {
maxSize: 20 * 1024 // 把小于 20kb 的文件转成 Base64 的格式
}
},
generator: {
// [ext]前面自带"."
filename: 'assets/[hash:8].[name][ext]',
},
},
]
},
body {
/* background: yellow; */
/* 29kb 效果 background: url(images/dog1-afa6a.min.webp); */
background: url("../assets/dog.webp");
/* 4.4kb 效果 background: url(data:image/webp;base64,UklGRpYRA。。。。 */
/* background: url("../assets/hlw.webp") */
/* 注意点:配置了图片的大小压缩 小于20kb 转化为base64 */
}
"devDependencies": {
"image-webpack-loader": "^8.1.0",
},
// loader相关配置
module: {
rules: [
{
test: /\.(png|jpg|svg|gif|webp|JPG|jpe)$/,
type: 'asset/resource',
parser: {
dataUrlCondition: {
maxSize: 20 * 1024 // 把小于 20kb 的文件转成 Base64 的格式
}
},
generator: {
// [ext]前面自带"."
filename: 'assets/[hash:8].[name][ext]',
},
use: [
// 使用 image-webpack-loader 对图片进行压缩
{
loader: "image-webpack-loader",
options: {
mozjpeg: {
progressive: true,
quality: 65
},
optipng: {
enabled: false
},
pngquant: {
quality: '65-90',
speed: 4
},
gifsicle: {
interlaced: false
},
// 不起效果???
webp: {
quality: 75
}
}
},
]
},
]
},
body {
/* background: yellow; */
/* 29kb 效果 background: url(images/dog1-afa6a.min.webp); */
/* background: url("@/assets/dog.webp"); */
/* 4.4kb 效果 background: url(data:image/webp;base64,UklGRpYRA。。。。 */
/* background: url("../assets/hlw.webp") */
/* 注意点:配置了图片的大小压缩 小于20kb 转化为base64 */
background: url("../assets/11.jpg")
}
dist / index.html 效果
打包前
打包后
// loader相关配置
module: {
rules: [
// 添加字体文件的处理规则
{
test: /.ttf|eot|woff2?$/i,
type: 'asset/resource',
generator: {
filename: 'font/[name].[hash:6][ext]'
}
},
]
},
@font-face {
font-family: "PingFang";
src: url("../fonts/PingFang\ Bold.ttf");
}
body {
/* background: yellow; */
/* 29kb 效果 background: url(images/dog1-afa6a.min.webp); */
/* background: url("@/assets/dog.webp"); */
/* 4.4kb 效果 background: url(data:image/webp;base64,UklGRpYRA。。。。 */
/* background: url("../assets/hlw.webp") */
/* 注意点:配置了图片的大小压缩 小于20kb 转化为base64 */
background: url("../assets/11.jpg");
font-family: 'PingFang';
}