umi 样式重复打包的问题

332 阅读1分钟

umi 内部引入了ant-design 做了按需加载 ,正常使用是会抽取ant-design的样式,之前有个大聪明遗留的坑,将production写成了product,导致splitChunks 不生效,我前阵子优化的时候将它开启了,这里又有一个大坑,如果开启了 就打乱了正常抽取ant-design的样式,导致会多次引入,导致覆盖不了默认样式的问题

1678783204639.png

可以看到 9个文件有73个重复的类名,重复的样式就很多 如果A引用了C ,B也引用了C ,A,B 都会把C 的样式打包进去, 导致了很多重复的样式,这是一个问题 我查了很多文档 都没有找到解决方案 ,后来我把ant-design 重新单独抽离

 cacheGroups: {
      antdesigns: {
        // antdsign
        name: 'antdesigns',
        chunks: 'all',
        test: /(@antd|antd|@ant-design)/,
        priority: 10,
      },
 }

这个时候就会 将ant-design的所有样式都抽到一起 这个时候还是有重复的问题,是重复引用的问题

image.png

这个时候还是会有引用重复的问题

//将一些公共样式抽离
  common: {
    name: 'common',
    chunks: 'all',
    minChunks: 2,
    test: /[\\/]src[\\/]/,
    priority: 10,
    enforce: true,
  },

再抽离一个公共的模块 公共的样式,A引入C ,B 引入C,只会将C 单独的打包出来,这样A,B 都没有C的样式了这样代码量也小了1M 多 菜鸡又学到了一些没用的知识