我试图抑制与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”中定义这些变量。 scss”文件,我将其传递到其他SASS文件中的上下文中,如下所示:
site.scss
@import '_settings-ltr.scss';
@import '_mixins.scss';
效果很好,除了VS中的错误:
我的问题
如何专门禁用此错误,而不禁用其他SASS文件错误?
答案 0 :(得分:1)
这是因为VS SCSS编辑器如何解析变量。从正在编辑文件的角度来看,它是这样做的。因为_mixins.scss
的SCSS编辑器实例不知道如何在site.scss
中解析导入,所以它没有解决此引用的方法。如果_mixins.scss
拥有一个{import _settings-ltr.scss
(或-rtl
)之前的@import链,那么它将能够解析该变量,并且不会显示错误。
也提出了类似的反馈here。最好打开一个新的反馈项来更好地描述场景(以及用于编译SCSS的内容,例如,如果您正在使用WebPack),以便团队可以将其作为设计变更的优先级。它不会立即得到解决,但是我们确实考虑了反馈项的数量,以对待办事项进行优先级排序。 (而且我很想拥有更多的弹药来优先使用此功能...)
当前,VS中没有一种方法可以禁用特定的SCSS错误。这可能是另一个功能请求,但是实现起来的优先级较低。
答案 1 :(得分:0)
我通过引用使用/// <reference path="./../mainfile" />
导入所有其他文件的主文件(在我的示例中将其命名为mainfile)激活了在其他地方声明的文件的智能感知。
代码应根据主文件的嵌套而更改(用您自己的导入其他文件的起始文件的名称替换)。
还要添加的scss文件之间的差异。例如,对于两个./..
,两个../..
深的文件夹,依此类推。
另一个例子。我通常将我的起始文件命名为main,所有的scss文件都是两个-三个文件夹深。
../../main
./../main
可悲的是,我没有找到一种基于未知文件成员的动态引用路径的方法。另外,该行还必须添加到每个文件中。
上面的解决方案提供了智能感知功能,可以对错误进行排序,您还可以看到悬停值,定义值等。