可以通过以下几种方式实现:
module.exports = {
module: {
rules: [
{
test: /\.png$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'images/'
}
}
]
}
]
}
};
或者
module.exports = {
module: {
rules: [
{
test: /\.png$/,
use: [
{
loader: 'url-loader',
options: {
limit: 8192,
name: '[name].[ext]',
outputPath: 'images/'
}
}
]
}
]
}
};
这样配置后,在代码中引用PNG文件时,webpack会自动处理并将其复制到输出目录。
module.exports = {
module: {
rules: [
{
test: /\.png$/,
use: [
'file-loader',
{
loader: 'image-webpack-loader',
options: {
mozjpeg: {
progressive: true,
quality: 65
},
optipng: {
enabled: false
},
pngquant: {
quality: [0.65, 0.9],
speed: 4
},
gifsicle: {
interlaced: false
},
webp: {
quality: 75
}
}
}
]
}
]
}
};
这样配置后,image-webpack-loader会在构建过程中对PNG文件进行压缩和优化。
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ImageminPlugin = require('imagemin-webpack-plugin').default;
module.exports = {
plugins: [
new CopyWebpackPlugin({
patterns: [
{
from: 'src/images/*.png',
to: 'images/[name].[ext]'
}
]
}),
new ImageminPlugin({
test: /\.(jpe?g|png|gif|svg)$/i
})
]
};
这样配置后,CopyWebpackPlugin会将PNG文件复制到输出目录,而ImageminPlugin会对PNG文件进行压缩和优化。
以上是使用webpack时不加载PNG的几种方式,具体选择哪种方式取决于项目需求和个人偏好。
领取专属 10元无门槛券
手把手带您无忧上云