【问题标题】:How to display the error path of where the custom function is used?如何显示自定义函数使用位置的错误路径?
【发布时间】:2018-09-06 16:18:45
【问题描述】:

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

使用内置的 Sass 函数:

来自_test.scss的代码。

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

将导致:

error _test.scss(第 2 行:$amount: "s" 不是 `darken' 的数字)



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

使用自定义函数:

来自_test.scss的代码。

.foo {
  color: example(string);
}

来自_functions.scss的代码。

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

将导致:

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


有什么办法可以解决这个“问题”吗?

【问题讨论】:

    标签: css sass path mixins


    【解决方案1】:

    您的示例仅在视觉上相似,基本逻辑完全不同:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 2019-11-19
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多