在我的项目中启用压缩后,文件大小缩小了70%以上,优化成果非常显著

Nginx 服务器开启 gzip,会将动态资源在服务端进行压缩,压缩包传输给浏览器后,浏览器再进行解压应用,这大大提高了网络传输的效率,尤其对 js,css 这类文本的压缩,成果很显著。

装置依赖 注:加了版本号,避免装置太高版本报错webpack找不到

npm i  compression-webpack-plugin@5.0.1 -D

批改 vue.config.js 配置

const path = require('path')const CompressionPlugin = require('compression-webpack-plugin') module.exports = { ...  configureWebpack: config => {    if (process.env.NODE_ENV === 'production') {      return {        plugins: [          new CompressionPlugin({            test: /\.js$|\.html$|\.css$|\.jpg$|\.jpeg$|\.png/, // 须要压缩的文件类型            threshold: 10240, // 归档须要进行压缩的文件大小最小值,这里是10K以上的进行压缩            deleteOriginalAssets: false // 是否删除原文件          })        ]      }    }  }}

打包后查看js文件

所有文件都被压缩了三分之二以上

在Nginx服务器也要做相应的配置

# 开启|敞开 gzip。gzip on|off;# 文件大于指定 size 才压缩,以 kb 为单位。gzip_min_length 10;# 压缩级别,1-9,值越大压缩比越大,但更加占用 CPU,且压缩效率越来越低。gzip_comp_level 2;# 压缩的文件类型。gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;# 开启后如果能找到 .gz 文件,间接返回该文件,不会启用服务端压缩。gzip_static on|off# 是否增加响应头 Vary: Accept-Encoding 倡议开启。gzip_vary on;# 申请压缩的缓冲区数量和大小,以 4k 为单位,32 为倍数。gzip_buffers 32 4K;

注:遇到服务端开启gzip后,并没有失效的问题,发现是nginx配置压缩文件类型时 application/x-javascript,如果是这样的写法令并不会失效。

JavaScript的MIME类型通常为“application/x-javascript”, 非IE的浏览器认“application/javascript”,

所以在上述配置中 application/javascript 和 application/x-javascript 并用,能够解决该问题。

而后重启nginx服务
systemctl restart nginx.service

当在申请中呈现如下标识,即开启胜利