umi2.x(webpack4.x)打包优化

优化缘由

  1. 项目越来越大,依赖越来越多,
  2. 打包后的js 越来越大 其中最大的js文件通过nginx gzip压缩后 还有 4MB, 影响客户体验.

查看文件打包分析

cross-env ANALYZE=1 umi build

优化方法

  1. 删除代码中冗余的,没有用到的第三方依赖
  2. 将用得很少的依赖 从 node_modules 中直接复制粘贴到本地项目代码中(实现按需加载), 并npm uninstall 此依赖
  3. 使用 umi-plugin-react 插件的chunks 和 umi的 chainWebpack 配置项 将依赖打包到不同多个文件中

以下是umi 配置文件相关代码

 plugins: [
    [
      'umi-plugin-react',
      {
        antd: true,
        dva: {
          hmr: true,
        },
        chunks: [
          'vendors',
          'antd',
          'echarts',
          'umi'],
      },
    ],
  ],
config.optimization.splitChunks({
    chunks: 'all',
    automaticNameDelimiter: '~',
    name: true,
    minSize: 30000,
    minChunks: 1,
    cacheGroups: {
      echarts: {
        name: 'echarts',
        chunks: 'async',
        test: /[\\/]node_modules[\\/](echarts|bizcharts)[\\/]/,
        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: -15,
        enforce: true,
      },
    },
  });
相关文档

UMI 配置优化 - 优化打包体积,提高打包速度、提高热更新速度etc

webpack4 optimization配置splitChunks和namedChunks

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用和引用的内容,可以了解到在umi 4.x版本中,可以使用useEffect钩子来在每次显示modal(模态框)时手动设置表单的初始值。在使用useEffect钩子时,可以使用form.setFieldsValue方法来设置表单的初始值,例如: ```javascript import { useEffect } from 'react'; import { useForm } from 'antd'; const MyComponent = ({ visible, userInfo }) => { const [form = useForm(); useEffect(() => { if (visible) { form.setFieldsValue({ status: "1", isAdmin: "0", ...userInfo }); } }, [visible, userInfo]); // 其他代码 return ( // 组件的JSX代码 ); }; ``` 根据引用的内容,umi 4.x版本中还进行了一些语法调整,比如替换了一些引入的依赖库和修改了一些API的使用方式。具体来说,针对状态管理的部分,可以使用useDispatch和useSelector来进行数据状态管理。而针对表单的部分,可以使用Form.useForm()来替代之前的Form.create()方法,以支持antd 4.x的使用。 综上所述,在umi 4.x版本中,可以使用useEffect钩子来处理modal的显示和表单的初始化,使用useDispatch和useSelector进行数据状态管理,并使用Form.useForm()来创建表单。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Umi2.x升级到Umi3.x](https://blog.csdn.net/u012125121/article/details/106567400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值