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
已解决
$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%);

