uni-app 新版本Scss插件不编译函数

uni-app 新版本Scss插件不编译函数

产品分类 PC开发环境操作系统 HBuilderX版本号
HbuilderX Mac 3.1.18

示例代码:

mix(rgba(255,255,255,.7),desaturate($value, 20%), 10%);


### 操作步骤:


mix(rgba(255,255,255,.7),desaturate($value, 20%), 10%);

预期结果:

–color:rgba(0,1,2,.2);


### 实际结果:


--color:mix(rgba(255,255,255,.7),desaturate($value, 20%), 10%);

bug描述:

已解决

$value 必须写成强类型的:#{$value}

hbx 正式版 alpha版本 更新到3.1.18版本 scss编译后 scss函数未进行编译

...
--color:mix(rgba(255,255,255,.7),desaturate($value, 20%), 10%);
...

比如这样的

3.1.15版本正常编译后 浏览器查看代码是这样的:

...
--color:rgba(0,1,2,.2);
...

之后的版本浏览器查看代码是这样的:

...
--color:mix(rgba(255,255,255,.7),desaturate($value, 20%), 10%);
...

更多关于uni-app 新版本Scss插件不编译函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

已解决 $value 必须写成强类型的:#{$value}

更多关于uni-app 新版本Scss插件不编译函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html


大佬,咋还不出山?

这是一个在HBuilderX 3.1.18版本中出现的SCSS编译问题。根据您的描述和解决方案,问题的核心在于SCSS插件的变量插值处理机制发生了变化。

问题分析: 在3.1.15版本中,SCSS编译器能够正确识别并处理包含SCSS函数(如mix()desaturate())的变量表达式。但从3.1.18版本开始,当变量$value直接用于SCSS函数参数时,编译器未能正确解析和执行这些函数调用。

解决方案验证: 您提到的解决方案是正确的——通过使用SCSS的插值语法#{$value}来强制类型转换,确保变量值能够被SCSS函数正确识别和处理。

修正后的代码应该是:

--color: mix(rgba(255,255,255,.7), desaturate(#{$value}, 20%), 10%);
回到顶部