公司自研组件库打包之后chunk.css文件25W行代码
创始人
2024-03-27 15:32:56
0

项目场景:

基于Antd开发的UI组件库,主要分为两部分。
一部分是基础组件,直接在Antd的基础上包了一层,然后根据自身需求拓展了新的功能。如:

  1. input的状态除了本身支持的error和warning两种,额外增加了成功的样式在这里插入图片描述

  2. select下拉框增加了搜索过滤高亮的功能在这里插入图片描述

  3. checkbox增加线性态在这里插入图片描述

另一部分是业务组件,主要是根据常用业务进行的定制化组件开发

除此之外还基于Antd的ConfigProvider实现了国际化以及主题的功能需求


问题描述

组件打包发版之后,打包之后的chunk.css代码量高达25w行
在这里插入图片描述


原因分析:

在实现主题时,为所有需要支持主题化的组件引入了antd的variable.less文件

举个例子,某个组件的less文件

@import '~antd/dist/antd.variable.less';.panui-accounting-period {border: 1px solid @select-border-color;position: relative;display: flex;width: 100%;
}
.panui-accounting-period:hover {border: 1px solid @primary-color;
}

当通过ConfigProvider控制主题颜色时,这里的颜色变量也可以相应进行改变

但是这种引入的方式时错误的,有二十多个组件都通过这种引入方式引入了variable.less。就导致了打包的时候,variable.less打包了二十多次。造成了庞大的重复的css代码。


解决方案:

修改引入方式:

@import (reference) '~antd/dist/antd.variable.less';

然后在首页入口文件在引入一下
在这里插入图片描述
ok,再打包一看,代码不到3w行


感谢观看

相关内容

热门资讯

修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
【前端】‘??‘与‘||‘有什... 0 问题 经常写const data = res.data.a ?? ''或者const d...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
牛客计算器的改良(Python... 文章目录1.题目描述2.输入描述:3.输出描述:4.示例15.分析6.代码7.结语 链接࿱...
正大杯|市调大赛|2023备赛... 关键信息 同时随着精细化养宠趋势的深入,宠物消费类目日渐丰富。 本报告通过 Niuco...
QGIS下载在线地图(Goog... 前言 国内外有很多在线地图下载软件,但功能单一,基本上只能下载数据&#x...