Stylus生成工具类时rem被添加ks-前缀的问题求助
解决Stylus生成rem单位变为ks-rem的问题
你的Stylus函数逻辑本身没问题,出现ks-rem是因为编译流程中某个插件/配置对rem单位做了替换,以下是排查和解决方法:
1. 强制输出原生rem单位
直接通过字符串拼接并取消转义的方式,绕过单位解析:
spacer-maker($class, $property, $steps = 12) for $i in 1..$steps if $i < 5 $step = .25 $multiplier = $i else $step = 1 $multiplier = $i - 3 $value = $multiplier * $step .{$class}-{$i} {$property}: unquote('' + $value + 'rem')
使用unquote()可以让Stylus直接输出拼接后的字符串,避免后续插件对单位进行修改。
2. 排查webpack编译链中的单位替换逻辑
- 检查
stylus-loader的配置:查看webpack配置中是否给stylus-loader添加了自定义插件或函数,有没有对rem做替换的逻辑。 - 检查postcss配置:如果项目用了postcss,查看是否有类似自定义单位转换的插件(比如自定义插件或修改过的
postcss-pxtorem),是否将rem替换为ks-rem。 - 检查全局Stylus变量/mixins:确认项目中有没有定义名为
rem的变量或mixin,比如rem($val) = $val ks-rem这类代码,导致单位被替换。
内容的提问来源于stack exchange,提问作者iiz
相关产品推荐
相关产品推荐

