GZip压缩

webpack

1、安装插件

npm i -D compression-webpack-plugin

npm i compression-webpack-plugin@4.0.0 --save -dev

"compression-webpack-plugin": "^1.1.12",  //低版本

2、config.js文件配置

格式一:

const CompressionPlugin = require('compression-webpack-plugin');

const productionGzipExtensions = ['js', 'css']



module.exports = {

    chainWebpack: config => {

        config.resolve.alias .set('@', resolve('src')) 

        if (process.env.NODE_ENV === "production") {

            config.plugin('compressionPlugin')

                .use(new CompressionPlugin({

                    algorithm: 'gzip',

                    test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),

                    threshold: 10240,

                    minRatio: 0.8,

                    deleteOriginalAssets: false // 是否删除源文件

                }));

        }



    },

    configureWebpack: (config) => {

        if (process.env.NODE_ENV === "production") { 

            ...

        } else {

            // 为开发环境修改配置...

        }

    },

    // 打包时不生成.map文件

    productionSourceMap: false,

    lintOnSave: false,

    devServer: {...}

}

格式二:

const CompressionPlugin = require("compression-webpack-plugin");
const productionGzipExtensions = ['js', 'css']
module.exports = {
 configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src'),
      },
    },
    plugins: [
      new CompressionPlugin({
        algorithm: 'gzip',
        test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'),
        threshold: 10240,
        minRatio: 0.8
      })
    ],
  }
}

webpack版本4.0以上

①、先执行卸载命令->npm uninstall compression-webpack-plugin

②、执行安装命令->npm i compression-webpack-plugin@5.0.1

vite

1、安装

npm i vite-plugin-compression -D

2、打包

vite.config.ts配置

import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import VueSetupExtend from 'vite-plugin-vue-setup-extend';

import viteCompression from 'vite-plugin-compression';
export default ({ mode }) => {
    const root = process.cwd();
    const env = loadEnv(mode, root);
    return {
        base: '/',
        plugins: [
            vue(),
            VueSetupExtend(),
            AutoImport({
                resolvers: [ElementPlusResolver()]
            }),
            viteCompression({
                verbose: true, // 默认即可
                disable: false, //开启压缩(不禁用),默认即可
                deleteOriginFile: false, //删除源文件
                threshold: 10240, //压缩前最小文件大小
                algorithm: 'gzip', //压缩算法
                ext: '.gz', //文件类型
            })
        ],
        build: {
            minify: 'terser',
            terserOptions: {
                compress: {
                    //生产环境时移除console
                    drop_console: true,
                    drop_debugger: true,
                },
            }
        },
        resolve: {
            alias: {
                '@': path.resolve(__dirname, 'src'),
                '~': path.resolve(__dirname, 'src')
            }
        },
       

        server: {...},

        
    }
};

3、nginx修改配置

server{
	     listen       9995;
        server_name  10.96.15.93;
        #会优先查找静态gzip资源
		gzip_static on;
		autoindex on;
        location / {
			
            root   E:/project/vue/test/packge/dist;
            index  index.html index.htm;
			try_files $uri $uri/ /index.html;
        }
        location ^~ /api/ {
            proxy_pass   http://192.168.2.83:31219/;
        }	
		
	}
	



gzip on;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
gzip_vary on;


gzip_buffers:设置压缩文件所使用缓存空间的大小(number,指定Nginx服务器需要向系统申请缓存空间的个数;size,指定每个缓存空间的大小。) 

gzip_types:压缩类型,js是application/javascript,css是text/css

gzip_comp_level:设置压缩程度,包含1-9级。级别1表示压缩程序最低,压缩效率最高;9表示压缩程度最高,压缩效率最低,最费时间。默认级别1。(压缩级别并不是越高越好,需要根据自己的情况来设定压缩级别。)

gzip_vary:设置为开启,服务器返回数据时会在头部带上"Vary:Accept-Encoding"的标识。客户端便可以知道获取到的数据是否已经被压缩,默认为关闭
原文链接:https://blog.csdn.net/qq_32439381/article/details/129438631

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值