|
|
|
@ -1,10 +1,5 @@
|
|
|
|
|
|
|
|
|
|
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
|
|
const webpack = require('webpack')
|
|
|
|
|
const CompressionPlugin = require('compression-webpack-plugin')
|
|
|
|
|
const zlib = require('zlib')
|
|
|
|
|
module.exports = {
|
|
|
|
|
devServer:{
|
|
|
|
|
|
|
|
|
@ -24,50 +19,8 @@ module.exports = {
|
|
|
|
|
new CssMinimizerPlugin(),
|
|
|
|
|
],
|
|
|
|
|
splitChunks: {
|
|
|
|
|
chunks: 'all',
|
|
|
|
|
cacheGroups: {
|
|
|
|
|
vendor: {
|
|
|
|
|
test: /[\\/]node_modules[\\/](element-ui|v-viewer)[\\/]/,
|
|
|
|
|
name: 'vendors',
|
|
|
|
|
chunks: 'all',
|
|
|
|
|
priority: 10, // 优先级设置,确保优先打包这些库
|
|
|
|
|
enforce: true // 忽略默认的最大初始请求和大小限制
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
chunks: 'all'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
configureWebpack: {
|
|
|
|
|
resolve: {
|
|
|
|
|
alias: {
|
|
|
|
|
'@': path.resolve(__dirname, './src'),
|
|
|
|
|
'@i': path.resolve(__dirname, './src/assets'),
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
plugins: [
|
|
|
|
|
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
|
|
|
|
|
// 下面两项配置才是 compression-webpack-plugin 压缩配置
|
|
|
|
|
// 压缩成 .gz 文件
|
|
|
|
|
new CompressionPlugin({
|
|
|
|
|
filename: '[path][base].gz',
|
|
|
|
|
algorithm: 'gzip',
|
|
|
|
|
test: /\.js$|\.css$|\.html$/,
|
|
|
|
|
threshold: 10240,
|
|
|
|
|
minRatio: 0.8
|
|
|
|
|
}),
|
|
|
|
|
// 压缩成 .br 文件,如果 zlib 报错无法解决,可以注释这段使用代码,一般本地没问题,需要注意线上服务器会可能发生找不到 zlib 的情况。
|
|
|
|
|
new CompressionPlugin({
|
|
|
|
|
filename: '[path][base].br',
|
|
|
|
|
algorithm: 'brotliCompress',
|
|
|
|
|
test: /\.(js|css|html|svg)$/,
|
|
|
|
|
compressionOptions: {
|
|
|
|
|
params: {
|
|
|
|
|
[zlib.constants.BROTLI_PARAM_QUALITY]: 11
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threshold: 10240,
|
|
|
|
|
minRatio: 0.8
|
|
|
|
|
})
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|