umi 内部引入了ant-design 做了按需加载 ,正常使用是会抽取ant-design的样式,之前有个大聪明遗留的坑,将production写成了product,导致splitChunks 不生效,我前阵子优化的时候将它开启了,这里又有一个大坑,如果开启了 就打乱了正常抽取ant-design的样式,导致会多次引入,导致覆盖不了默认样式的问题
可以看到 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的所有样式都抽到一起 这个时候还是有重复的问题,是重复引用的问题
这个时候还是会有引用重复的问题
//将一些公共样式抽离
common: {
name: 'common',
chunks: 'all',
minChunks: 2,
test: /[\\/]src[\\/]/,
priority: 10,
enforce: true,
},
再抽离一个公共的模块 公共的样式,A引入C ,B 引入C,只会将C 单独的打包出来,这样A,B 都没有C的样式了这样代码量也小了1M 多 菜鸡又学到了一些没用的知识