Webpack是一个广泛使用的模块打包工具,它提供了多种资源压缩相关的功能和插件。下面是一些Webpack常用的资源压缩技术和插件:
1. 压缩 JavaScript:可以使用UglifyJS插件来压缩JavaScript代码。在Webpack配置文件中,通过在`optimization`选项中配置`minimizer`属性来启用UglifyJS插件,例如:
```javascript
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
// ...
optimization: {
minimizer: [new UglifyJsPlugin()],
},
};
```
2. 压缩 CSS:使用css-loader和mini-css-extract-plugin插件可以将CSS文件进行压缩。在Webpack配置文件中,通过添加压缩CSS的loader和插件,例如:
```javascript
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].[contenthash].css',
}),
],
// ...
};
```
3. 压缩图片:使用image-webpack-loader插件结合file-loader或url-loader可以对图片进行压缩。在Webpack配置文件中,添加对图片的loader和插件配置,例如:
```javascript
module.exports = {
// ...
module: {
rules: [
// ...
{
test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[contenthash].[ext]',
outputPath: 'images',
},
},
{
loader: 'image-webpack-loader',
options: {
mozjpeg: {
progressive: true,
quality: 80,
},
optipng: {
enabled: false,
},
pngquant: {
quality: [0.65, 0.9],
speed: 4,
},
gifsicle: {
interlaced: false,
},
webp: {
quality: 75,
},
},
},
],
},
],
},
// ...
};
```
按实际情况选择适合的插件和配置来实现资源压缩,从而减小文件大小,提高页面加载速度。