如何显示自定义函数的使用位置的错误路径?

问题描述 投票:0回答:1

如果我使用返回错误的内置Sass函数,它将显示使用它的路径。

Using a built-in Sass function:

来自_test.scss的代码。

.foo {
  color: darken(blue, s);
}

将导致:

error _test.scss(第2行:$ amount:“s”不是“变暗”的数字)


现在,如果我使用返回错误的自定义函数,它将显示定义它的位置的路径而不是它的使用位置。

Using a custom function:

来自_test.scss的代码。

.foo {
  color: example(string);
}

来自_functions.scss的代码。

@function example($string) {
  @error 'error message';
}

将导致:

错误core / utils / _functions.scss(第2行:错误消息)

有没有解决这个“问题”的解决方案?

css sass path mixins
1个回答
1
投票

您的示例仅在视觉上类似,底层逻辑完全不同:

  • 对于内置函数,Sass本身会抛出错误,因为从Sass的角度来看代码无效。
  • 在第二个示例中,您抛出错误,因为从您的角度来看代码无效。在这种情况下,从Sass的角度来看,代码本身是有效的。

在这两种情况下,Sass都会显示有关错误位置的相同信息 - 这是发生错误的代码库中的一个点。但是在您自己的情况下,故意错误抛出错误发生的实际点实际上匹配您生成此错误的地方 - 恰好在您有@error指令的地方。因此Sass行为没有错误,因为它对您决定抛出错误的原因一无所知。

您始终可以分析显示的堆栈跟踪(至少通过node-sass)以及错误消息,以确定从哪里获得错误点。您还可以使用@debug显示可能对错误分析有用的上下文。

© www.soinside.com 2019 - 2024. All rights reserved.