umi打包的時(shí)候,太大進(jìn)行壓縮處理
關(guān)鍵插件和umi版本:
"umi": "^3.2.24",
"compression-webpack-plugin": "^6.0.0",
在.umirc.ts文件添加
export default defineConfig({
nodeModulesTransform: {
type: 'none',
exclude: [],
},
.....
dynamicImport: {},
chunks: ['vendors', 'umi'],
chainWebpack: function (config, { webpack }) {
config.merge({
optimization: {
splitChunks: {
chunks: 'all',
automaticNameDelimiter: '.',
name: true,
minSize: 30000,
minChunks: 1,
cacheGroups: {
vendors: {
name: 'vendors',
chunks: 'all',
test: /[\\/]node_modules[\\/]/,
priority: -12,
},
},
},
},
});
if (process.env.NODE_ENV === 'production') {
//gzip壓縮
config.plugin('compression-webpack-plugin').use(CompressionPlugin, [
{
test: /\.js$|\.html$|\.css$/, //匹配文件名
threshold: 10240, //對(duì)超過10k的數(shù)據(jù)壓縮
deleteOriginalAssets: false, //不刪除源文件
},
]);
}
},
theme: {},
.......
});
nginx配置支持請(qǐng)求壓縮內(nèi)容
在nginx配置文件內(nèi)添加
# 開啟和關(guān)閉gzip模式
gzip on;
# gizp壓縮起點(diǎn),文件大于1k才進(jìn)行壓縮
gzip_min_length 1k;
# gzip 壓縮級(jí)別,1-9,數(shù)字越大壓縮的越好,也越占用CPU時(shí)間
gzip_comp_level 6;
# 進(jìn)行壓縮的文件類型。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/xml text/javascript application/json;
# nginx對(duì)于靜態(tài)文件的處理模塊,開啟后會(huì)尋找以.gz結(jié)尾的文件,直接返回,不會(huì)占用cpu進(jìn)行壓縮
gzip_static on;
# 是否在http header中添加Vary: Accept-Encoding,建議開啟
gzip_vary on;
# 設(shè)置壓縮所需要的緩沖區(qū)大小,以4k為單位,如果文件為7k則申請(qǐng)2*4k的緩沖區(qū)
gzip_buffers 4 16k;