优化ant design pro打包之后vendors.async.js文件大的问题

2024-02-24 20:10

本文主要是介绍优化ant design pro打包之后vendors.async.js文件大的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目使用的是ant design pro V2,比较老的版本了,项目部署之后每次首页都加载缓慢,看了下打包后的dist文件夹里,最大的两个文件是vendors.async.js和umi.js。
umi打包的时候会把第三方组件全部打包到vendors.async.js文件中,如果想要减小vendors.async.js文件的大小,就需要分析哪些组件被打包进去了,然后通过拆分去进行优化。这个还没有弄很明白,后来我看了下我的项目用gzip压缩之后就已经小很多了,就只用了gzip,如果后面项目文件多到gzip压缩都不行了再去研究那个吧。

1.cnpm run analyze


使用命令cnpm run analyze查看现在文件大小以及gizp之后能减少多少,如果减少的不是很多的话,用gizp也没有什么必要,就要考虑其他优化方法了。

cnpm run anaylze

Parsed显示的是打包后文件的大小,
Gzipped显示的是使用gzip压缩后的文件的大小。
压缩之后文件大小缩小了三倍多。
在这里插入图片描述
在这里插入图片描述

2.前端使用gzip


1.安装插件compression-webpack-plugin

cnpm i compression-webpack-plugin@1.1.12 -S

2.修改config/config.js中的chainWebpack。chainWebpack引入了同目录下的另一个文件plugin.config,plugin.config中的内容不变,再添加gizp相关配置

// Change theme plugin
import CompressionWebpackPlugin from 'compression-webpack-plugin';
const prodGzipList = ['js', 'css'];export default config => {// 以下为gzip配置内容if (process.env.NODE_ENV === 'production') {  // 生产模式开启config.plugin('compression-webpack-plugin').use(new CompressionWebpackPlugin({// filename: 文件名称,这里我们不设置,让它保持和未压缩的文件同一个名称//filename: '[path].gz[query]',algorithm: 'gzip', // 指定生成gzip格式test: new RegExp('\\.(' + prodGzipList.join('|') + ')$'), // 匹配哪些格式文件需要压缩threshold: 10240, //对超过10k的数据进行压缩minRatio: 0.6 // 压缩比例,值为0 ~ 1}));}
};

3.打包。打包之后能看到dist文件夹下有.gz后缀的文件,前端就可以了。

cnpm run build

3.后端


服务器也需要部署gzip,我使用的是tomcat部署。
只需要再conf/server.xml中添加配置就可以了。添加compression,compressionMinSize,noCompressionUserAgents,compressableMimeType这四个,即代码的最后四行。

<Connector port="8090" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" compression="on" compressionMinSize="2048"   noCompressionUserAgents="gozilla, traviata"                            compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>

4.结果


重新启动tomcat之后,可以看到与之前相比,文件大小已经变小了,访问时间也缩短了。

在这里插入图片描述
在这里插入图片描述
主要学习于此博客

---------------------------追加--------------------------------------------------------------------------------------------------------
问题:(希望有大佬能看到)
我只修改了服务器的配置,只给tomcat加上了gzip的配置,然后去访问就发现文件大小已经变小了(我还没更新前端文件呢),突然没有明白前端做gzip配置的意义,有点懵。
另外在我本地部署的tomcat项目访问起来总是要比在云端部署的tomcat访问起来快,是项目优化没到位还是云端访问的问题呢

这篇关于优化ant design pro打包之后vendors.async.js文件大的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/743234

相关文章

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

Node.js 数据库 CRUD 项目示例详解(完美解决方案)

《Node.js数据库CRUD项目示例详解(完美解决方案)》:本文主要介绍Node.js数据库CRUD项目示例详解(完美解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考... 目录项目结构1. 初始化项目2. 配置数据库连接 (config/db.js)3. 创建模型 (models/

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf