vue3打包文件有些文件过大,导致加载页面时间久,体验感不佳,可在打包时使用Gzip压缩,将一些稍大的文件进行压缩,从而优化加载速度。
vue
gizp压缩是一种http请求优化方式,通过减少文件体积来提高加载速度。html、js、css文件甚至json数据都可以用它压缩,减少文件大小。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
vue可以通过安装 compression-webpack-plugin 来实现gzip压缩,配置很容易。
- 安装插件
npm i --save-dev compression-webpack-plugin
- 在 vue.con 配置gzip压缩
const CompressionWebpackPlugin = require('compression-webpack-plugin'); module.exports = { // ... configureWebpack: config => { con = { AMap: "AMap", // 高德地图配置 } if === 'production') { return { plugins: [new CompressionWebpackPlugin({ test: /\.js$|\.html$|\.css/, // 匹配文件名 threshold: 10240, // 对超过10k的数据进行压缩 deleteOriginalAssets: false, //是否删除原文件 })] } // ... }
- 配置Nginx
server { listen 8080; server_name demo; #开启或关闭gzip on off gzip on; #gzip压缩最小文件大小,超出进行压缩(自行调节) gzip_min_length 5k; gzip_buffers 4 16k; #buffer 不用修改 gzip_comp_level 8; #压缩级别:1-10,数字越大压缩的越好,时间也越长 gzip_types text/plain application/json application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件类型 gzip_vary on; # 和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩 location / { root /demo/dist; index ; } }
- 如果是部署到tomcat里,配置tomcat也很简单
<Connector connectionTimeout="20000" enableLookups="false" port="80" protocol="HTTP; redirectPort="8443" useBodyEncodingForURI="false" compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/csv,application/json,application/xml,application/x-javascript,application/javascript,text/css" URIEncoding="utf-8"/>