使用AST快速解决css代码重构问题css-tree

本文介绍了如何利用AST和css-tree库快速解决CSS代码重构问题,特别是在小程序转PC预览场景中。通过将SCSS转换为CSS,然后解析为JSON树结构,对尺寸和单位进行修改,最后再生成新的CSS代码,实现样式调整的高效自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抽象语法树(AST)相信很多从事后端开发的同学都已经很了解了,得益于nodejs这两年的发展,很多前端同学也对AST有所研究,像近两年出现的小程序开发框架wepy mpvue等确实解决了不少前端开发中的实际问题,像mpvue这种框架的原理是什么,其中比较核心的功能就是使用AST来完成js,html,css的编译,趁着年初不忙,对去年一个项目中AST的应用做下简单分享,高手勿喷哈!

 

先说下需求背景,已经有一些小程序页面,现在产品要求能在pc管理后台可视化预览这些页面,并在后台可视化通过拖拽等操作在线编辑修改这些页面的样式。这里只介绍其中一个简单的功能点就是css部分的重构,来帮助大家入门。

 

小程序使用mpvue开发,pc后台也是使用vue开发,这样html模板大部分可以复用,只需替换一些组件,css部分小程序使用sass, 里面的尺寸单位都是750rpx,但在pc上预览的时候只有430px,最早使用sass中的一些函数来解决此问题,但发现太费时间,效率不高,最后决定用使用node-sass先将scss转换css文件, 再使用css做ast转换的常用库css-tree把css代码解析成json树,调用csstree.walk对想要重构的尺寸,单位进行修改,修改完后调用csstree.generate再生成css代码,这部分可以封装为一个webpack loader插件或者命令行工具,对小程序写好的scss文件直接转换为pc端能用的文件。

 

最小化代码 

/**
 * Created by liujinghao on 2018/12/5.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值