postcss的cssnano插件压缩CSS过程中对@keyframes重命名存在重复的问题。

本文介绍了一个关于iview弹框动画效果出现延时的问题及其解决方案。问题源于打包过程中自定义动画名称被重命名导致冲突。通过调整postcss配置,禁止动画名称重命名,成功解决了该问题。

现象:

打包后iview的弹框的遮罩动画效果出现延时。

推断:

1.页面中的遮罩效果被改变。
2.页面中的遮罩效果被覆盖。

定位问题:
查看弹框遮罩Element的style样式,发现没有增减或是覆盖样式,但是@keyframes的名称被缩写成了a。
查看后发现a中定义的动画效果并不是iview定义的动画效果。打包前项目中全局搜索并没有发现名称为a的动画。
在打包后的项目中全局搜索iview中定义的遮罩动画名称,并没有搜索到,所以推断打包过程中@keyframes的名称被缩写了。
在打包后的项目中全局搜索@keyframes a,发现了两个,所以原因是被缩写的动画名称出现了重复。
查看配置文件发现使用了postcss的cssnano插件压缩css,压缩过程中使用了postcss-reduce-idents插件对自定义的标识符重命名。

解决问题:

修改配置文件postcss.config.js,plugins属性中增加

'postcss-reduce-idents': {
keyframes: false,
},

禁止插件对自定义动画名称的重命名。

可查看详细文档 https://github.com/cssnano/cssnano/tree/master/packages/postcss-reduce-idents

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值