You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
|
|
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:{
|
|
|
|
proxy: {
|
|
'/api':{
|
|
target:'http://192.168.10.54:9100/v1',
|
|
changOrigin:true,
|
|
pathRewrite:{
|
|
'^/api':''
|
|
}
|
|
}
|
|
}
|
|
},
|
|
configureWebpack: {
|
|
optimization: {
|
|
minimizer: [
|
|
new CssMinimizerPlugin(),
|
|
],
|
|
splitChunks: {
|
|
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
|
|
})
|
|
]
|
|
}
|
|
} |