如果我使用返回错误的内置Sass函数,它将显示使用它的路径。
来自_test.scss
的代码。
.foo {
color: darken(blue, s);
}
将导致:
error _test.scss(第2行:$ amount:“s”不是“变暗”的数字)
现在,如果我使用返回错误的自定义函数,它将显示定义它的位置的路径而不是它的使用位置。
来自_test.scss
的代码。
.foo {
color: example(string);
}
来自_functions.scss
的代码。
@function example($string) {
@error 'error message';
}
将导致:
错误core / utils / _functions.scss(第2行:错误消息)
有没有解决这个“问题”的解决方案?
您的示例仅在视觉上类似,底层逻辑完全不同:
在这两种情况下,Sass都会显示有关错误位置的相同信息 - 这是发生错误的代码库中的一个点。但是在您自己的情况下,故意错误抛出错误发生的实际点实际上匹配您生成此错误的地方 - 恰好在您有@error
指令的地方。因此Sass行为没有错误,因为它对您决定抛出错误的原因一无所知。
您始终可以分析显示的堆栈跟踪(至少通过node-sass)以及错误消息,以确定从哪里获得错误点。您还可以使用@debug
显示可能对错误分析有用的上下文。