react性能优化篇之umi.js打包去掉console和开启gzip压缩

react性能优化篇之umi.js打包去掉console和开启gzip压缩

2022年05月31日 17:33 ·  阅读 1162

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

本次打包针对react --version 17.0.2 和 umi --verison 3.5

版本上下浮动一下没问题,也可以适用

参考如下👇

image.png

一、去除console

第一步: 安装 babel-plugin-transform-remove-console 插件

 
js
复制代码
npm install babel-plugin-transform-remove-console

第二步:在config.ts或.umirc.ts中进行配置

图例👇

image.png

代码👇

 
js
复制代码
//在生产环境中取消console
extraBabelPlugins: [isProd ? 'transform-remove-console' : '']
//或者
//在所有环境中取消console
extraBabelPlugins: [transform-remove-console]

完成!!!

二、开启gzip压缩

gzip压缩是前端性能优化的一种手段,减少build之后包的体积,加快首屏渲染速度。

第一步:安装 compression-webpack-plugin 插件

 
复制代码
npm install compression-webpack-plugin

第二步:在config.ts或.umirc.ts中进行配置

图例👇

image.png

代码👇

 
js
复制代码
chainWebpack: function (config, { webpack }) {
    config.merge({
      optimization: {
        splitChunks: {
          chunks: 'all',
          minSize: 1000,
          minChunks: 2,
          automaticNameDelimiter: '.',
          cacheGroups: {
            vendor: {
              name: 'vendors',
              test({ resource }) {
                return /[\\/]node_modules[\\/]/.test(resource)
              },
              priority: 10,
            },
          },
        },
      },
    })
    //在生产环境开启gzip压缩
    if (isProd) {
      // Gzip压缩
      config.plugin('compression-webpack-plugin').use(CompressionPlugin, [
        {
          test: /\.(js|css|html)$/i, // 匹配
          threshold: 10240, // 超过10k的文件压缩
          deleteOriginalAssets: false, // 不删除源文件
        },
      ])
    }
  }

配置完成后使用npm run build 打包

查看dist文件夹中出现了.gz结尾的压缩包,就是压缩成功了

图例👇

image.png

但是到这里还没完,还需要,到这里只是前端完成了gzip压缩。如果在项目中需要gzip压缩之后的压缩文件。还需要后端在nginx中配置 gzip_static on

 
js
复制代码
//nginx 配置
gzip_static  on  //检测是否存在gzip文件,有,则返回给客户端

最后,运行项目,找一个css或者js或者html后缀的文件,查看响应头中的 Content-Encoding 字段。显示为gzip则表示gzip在项目中使用成功。

图例👇

image.png

到此。gzip压缩开启完成!!

posted on 2023-06-16 15:01  漫思  阅读(622)  评论(0编辑  收藏  举报

导航