1

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

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

例如,这些是设置的 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.scss”文件中定义这些变量,我将它们传递给其他一些 SASS 文件中的上下文,如下所示:

网站.scss

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

它工作得很好,除了来自VS的错误:

Visual Studio 中的错误

我的问题

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

4

2 回答 2

1

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

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

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

于 2018-11-27T07:49:50.300 回答
0

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

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

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

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

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

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

于 2018-11-27T08:52:58.607 回答