• umi项目打包优化 广东靓仔


    欢迎关注前端早茶,与广东靓仔携手共同进阶

    前端早茶专注前端,一起结伴同行,紧跟业界发展步伐~

    前言

    umi打包的时候,居然用了30分钟。有必要进行压缩,经过优化后,从30分钟到4分钟。

    具体方案

    关键插件和umi版本:

     
    "umi": "^3.2.24",
     "compression-webpack-plugin": "^6.0.0",

    在.umirc.ts文件添加

    export default defineConfig({
      nodeModulesTransform: {
        type: 'none',
        exclude: [],
      },
      .....
      dynamicImport: {},
      chunks: ['vendors', 'umi'],
      chainWebpack: function (config, { webpack }) {
        config.merge({
          optimization: {
            splitChunks: {
              chunks: 'all',
              automaticNameDelimiter: '.',
              name: true,
              minSize: 30000,
              minChunks: 1,
              cacheGroups: {
                vendors: {
                  name: 'vendors',
                  chunks: 'all',
                  test: /[\\/]node_modules[\\/]/,
                  priority: -12,
                },
              },
            },
          },
        });
        if (process.env.NODE_ENV === 'production') {
          //gzip压缩
          config.plugin('compression-webpack-plugin').use(CompressionPlugin, [
            {
              test: /\.js$|\.html$|\.css$/, //匹配文件名
              threshold: 10240, //对超过10k的数据压缩
              deleteOriginalAssets: false, //不删除源文件
            },
          ]);
        }
      },
      theme: {},
     .......
    });

    nginx配置支持请求压缩内容

    在nginx配置文件内添加

     # 开启和关闭gzip模式
    gzip on;
    
    # gizp压缩起点,文件大于1k才进行压缩
    gzip_min_length 1k;
    
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 6;
    
    # 进行压缩的文件类型。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/xml text/javascript application/json;
    
    # nginx对于静态文件的处理模块,开启后会寻找以.gz结尾的文件,直接返回,不会占用cpu进行压缩
    gzip_static on;
    
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;
    
    # 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区
    gzip_buffers 4 16k;

    欢迎关注前端早茶,与广东靓仔携手共同进阶

    前端早茶专注前端,一起结伴同行,紧跟业界发展步伐~

     
  • 相关阅读:
    jmeter在Windows下安装(含插件安装)
    Jenkins中agent的使用
    Jenkins自动化测试脚本的构建
    Python在Linux下编译安装
    Jenkins项目构建运行
    VIM不正常退出产生的swp文件
    SSI服务器端包含注入
    【强网杯2019】随便注
    判断网站CMS
    windows基础
  • 原文地址:https://www.cnblogs.com/cczlovexw/p/15952245.html
Copyright © 2020-2023  润新知