项目性能优化--gzip

1.项目放到服务器上访问,查看js请求,加载的是js文件;

优化-生成gzip包并优先匹配gzip资源

第一种方式:纯nginx服务器配置

1.nginx配置

复制代码
# 开启
gzip on;

# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;

# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 1;

# 进行压缩的文件类型。javascript有多种形式。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;

# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

# http版本,不填不生效
gzip_http_version 1.0;

2.请求,发现请求的是gzip

第二种方式:前端生成gzip

使用compression-webpack-plugin插件 https://www.npmjs.com/package/compression-webpack-plugin

1.vue.config.js中配置

复制代码
const webpack = require('webpack')
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']

module.exports = {
  configureWebpack: {
    plugins: [
      // 启用gzip
      new CompressionWebpackPlugin({
        algorithm: 'gzip',
        test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
        threshold: 10240,
        minRatio: 0.8,
        deleteOriginalAssets: false // 是否删除源文件
      }),
      new webpack.optimize.LimitChunkCountPlugin({
        maxChunks: 5, 
        minChunkSize: 100
      })
    ]
  }
}

deleteOriginalAssets为true时,会删除js文件,访问时会报404

2.build后产生gzip文件

3.需要服务端配置

复制代码
// 会优先查找静态gzip资源
gzip_static on;
相关推荐
疯华整猫14 小时前
我用 Trae 把 Android 内存账重算了一遍
android·性能优化·源码
寂寞的船3 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
Flynt3 天前
内存省16倍的Lightpanda实测:数字是真的,但并发代码要重写
性能优化·开源·agent
OpenAnolis小助手3 天前
RISC-V 基础软件的工程化与性能优化实践
性能优化·操作系统·龙蜥社区·risc-v
程序员吕洞宾4 天前
开源多维表格SmartTable v1.6.10 —— 用户名登录、数据评论及@人、表单分享二维码、性能优化、部署及升级优化
spring·性能优化·开源
余槐i4 天前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
王中阳Go4 天前
预算给够了,时间花错了地方:三跳链路给了 27 秒,实际只用掉 9 秒
人工智能·后端·性能优化
Chen7324 天前
WebGPU 性能优化:Three.js 千万级点云调度与渲染实践
性能优化·three.js
peakmain94 天前
异常处理 - Native 层的崩溃捕获机制及实现 (一)
android·性能优化
只睡四小时4 天前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测