【记录一次React优化过程】

记录一次React,umi项目代码从30M+优化到4M的过程

  1. 首先打开配置中 的analyze,分析哪个页面的代码占比比较大
    pagckage.json 中配置 “analyzeDev”: “ANALYZE=1 umi dev”,并运行运行效果【优化后】
  2. 初始状态 33.56M

在这里插入图片描述
3. 去掉不必要的引入 ,最重要的是 去掉了 import { transpileModule } from ‘typescript’;一下子减少了10M,到 21M
在这里插入图片描述
4. 分割代码,从21M减到了5.2M

 chunks: ['echarts', 'vendors', 'antd', 'umi'],
  chainWebpack(memo) {
    memo.optimization.splitChunks({
      chunks: 'all', //async异步代码分割 initial同步代码分割 all同步异步分割都开启
      automaticNameDelimiter: '.',
      name: true,
      minSize: 30000, // 引入的文件大于30kb才进行分割
      //maxSize: 50000, // 50kb,尝试将大于50kb的文件拆分成n个50kb的文件
      minChunks: 1, // 模块至少使用次数
      // maxAsyncRequests: 5,    // 同时加载的模块数量最多是5个,只分割出同时引入的前5个文件
      // maxInitialRequests: 3,  // 首页加载的时候引入的文件最多3个
      // name: true,             // 缓存组里面的filename生效,覆盖默认命名
      cacheGroups: {
        echarts: {
          name: 'echarts',
          test: /[\\/]node_modules[\\/](echarts)[\\/]/,
          priority: -9,
          enforce: true,
        },
        antd: {
          name: 'antd',
          test: /[\\/]node_modules[\\/](@ant-design|antd|antd-mobile)[\\/]/,
          priority: -10,
          enforce: true,
        },
        vendors: {
          name: 'vendors',
          test: /[\\/]node_modules[\\/]/,
          priority: -11,
          enforce: true,
        },
      },
    });
  },

在这里插入图片描述
5. 三四个模块按需引入 echarts,从5.2M减到了4.7M
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值