【问题标题】:Visual studio suppress error on undefined SASS variableVisual Studio 抑制未定义的 SASS 变量上的错误
【发布时间】:2018-11-28 17:09:42
【问题描述】:

我正在尝试抑制与 Visual Studio 中的 SASS 文件相关的特定错误。我会提到一切都很好,CSS文件的生成与SASS文件应该生成的完全一样,即使在VS上出现这个错误,所以我认为这可能是VS上的一个错误。

基本上我正在做的是我有 2 个 SASS 文件,我在其中声明了一些变量作为另一个 SASS 文件的设置,该文件包含一些根据上下文中提供的设置文件工作的 mixin。

例如,这些是用于设置的 2 个文件:

_settings-ltr.scss

$bi-app-left: left;
$bi-app-right: right;

_settings-rtl.scss

$bi-app-left: right;
$bi-app-right: left;

这是使用这些设置的文件:

_mixins.scss

@mixin padding-left($distance) {
  padding-#{$bi-app-left}: $distance;
}

@mixin padding-right($distance) {
  padding-#{$bi-app-right}: $distance;
}

现在,基本上错误表明变量“$bi-app-left”未定义(以及“$bi-app-right”),我真的没有在“_mixins.xml”中定义这些变量。 scss" 文件,我将它们传递给其他 SASS 文件中的上下文,如下所示:

site.scss

@import '_settings-ltr.scss';
@import '_mixins.scss';

而且效果很好,除了来自 VS 的错误:

我的问题

如何在不禁用其他 SASS 文件错误的情况下专门禁用此错误?

【问题讨论】:

    标签: visual-studio sass visual-studio-2017 scss-mixins


    【解决方案1】:

    这是因为 VS SCSS 编辑器如何解析变量。它是从正在编辑的文件的角度这样做的;因为_mixins.scss 的SCSS 编辑器实例不知道site.scss 中的导入是如何解析的,所以它没有办法解析这个引用。如果_mixins.scss 有一个@import 链直到_settings-ltr.scss(或-rtl),那么它将能够解析变量并且不会显示错误。

    here 也提出了类似的反馈。值得打开一个新的反馈项以更好地描述场景(以及您用于编译 SCSS 的内容,例如,如果您正在使用 WebPack),以便团队可以将其作为设计更改的优先级。它不会立即得到解决,但我们会考虑反馈项目的数量来确定积压的优先级。 (而且我希望有更多的弹药来优先考虑这个功能......)

    目前,VS 中没有办法禁用特定的 SCSS 错误。这可能是另一个功能请求,但实施的优先级较低。

    【讨论】:

      【解决方案2】:

      我已经通过引用使用/// <reference path="./../mainfile" /> 导入所有其他文件的主文件(在我的示例中将其命名为mainfile)为其他地方声明的文件激活了智能感知。

      代码应该根据主文件的嵌套而改变(替换为您自己的导入其他所有内容的起始文件的名称)。 还有你添加的scss文件之间的区别。例如两个文件夹深 ./.. 三个 ../.. 等等。

      另一个例子。我通常将我的起始文件命名为 main 并且所有 scss 文件都是两到三个文件夹深。

      ../../main
      ./../main
      

      遗憾的是,我没有找到基于未知文件成员引用路径的动态方法。此外,该行必须添加到每个文件中。

      上面的解决方案提供了对错误进行排序的智能感知,您还可以在悬停时查看值、转到定义等。

      【讨论】:

      • 我把这条线放在哪里?在 SCSS 文件中它什么也不做。
      • 更新了我的答案@O.Shai
      • 谢谢,正如你所说,它只抑制了警告和智能感知,这很好,但真正的问题仍然存在,错误没有被抑制,这不是我的解决方案。
      • 它在输入和定义等时提供智能感知。
      猜你喜欢
      • 2015-05-25
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      • 1970-01-01
      • 2015-02-02
      • 2014-04-11
      相关资源
      最近更新 更多