umi配置webpack_umi/antd pro换肤功能

本文介绍了如何在umi和antd pro项目中实现在线换肤功能,通过css3的var()函数和webpack配置,将主题less文件打包为css,并动态切换link标签的href实现换肤。详细步骤包括定义全局颜色变量、修改webpack入口、动态引入主题样式文件以及在前端实现换肤功能。
摘要由CSDN通过智能技术生成

一个基于umi搭建的项目的换肤的实现

因为webpack和umi的层层封装,在线换肤功能实现变得复杂了,antdpro之前提供了动态编译less的方案,可惜中间的webpack插件有问题,而且说实话这个实现不好,每次保存都要把文件夹中所有less文件合并,导致改一行less文件编译时间过长,在antdpro4中也取消了这个功能;而其他的插件大多是实现了antd组件级别的在线换肤,虽说全页面使用antd的变量也能实现,但是我真的记不住那么多的antd变量名,我想自己取名字!!!本文提供一个很简便的方式实现在线换肤,只需一点点点点webpack知识。

思路:

通过css3的var()函数,通过修改全局的配置,达到换肤的效果

定义变量

/src

下的theme.less和theme2.less为我要打包的文件,里面定义了全局的颜色变量

:root {

--color1: #e6fffb;

--color2: #13c2c2;

}

复制代码

然后在less中使用

background-color:var(--color1)

复制代码

当然你可以再封装一层

@bg-color:var(--color1)

background-color:var(--color1)

复制代码

这样在全局使用css3的变量,我们只需要改变--color1就可以达到换肤的效果。

增加打包入口,把less转换为css

umi中可以使用webpack-chain去改变webpack的配置</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值