公司自研组件库打包之后chunk.css文件25W行代码

10 篇文章 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行


感谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值