我正在尝试使用 Sass 测试贝塞尔三次曲线的实现,但在使用 node-sass 编译 sass 文件时出现错误,这是错误:
{
"formatted": "Error: invalid operands for multiplication\n
on line 192 of public/scss/components/_bezier.scss\n>>
if($x1 == 1, 90deg, 0 - atan(($y1 - 0) / ($x1)) * 1rad),\n ------------------------------------^\n",
"message": "invalid operands for multiplication",
"column": 37,
"line": 192,
"file": "/Users/msantamaria/Documents/dev/presonal_projects/sass-bezier/public/scss/components/_bezier.scss",
"status": 1
}
问题正是在这一行:
background: linear-gradient(
if($x1 == 1, 90deg, 0 - atan(($y1 - 0) / ($x1)) * 1rad),
//more params...
做了一些测试,我发现我正在运行值为0.something
for的函数$x1
,如果我将值更改为整数,则函数可以工作并且错误不会出现。我认为这与 node-sass 与 ruby sass 的方式有关。
如果您想弄乱并查看整个代码,这就是它的代码笔。
谢谢。
编辑:
这被标记为重复,但相关的问题和答案并不相同,并且不提供任何信息或可能的答案来解决我最初的担忧。
这里的问题不在于未定义函数,因为正如我所提到的,当值为 1 时,mixin 确实有效。