Visual Studio подавляет ошибку в неопределенной переменной SASS - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь подавить конкретную ошибку, связанную с файлом SASS в Visual Studio.Я упомяну, что все прекрасно работает , файл 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, например:

site.scss

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

и прекрасно работает , за исключением этой ошибки от VS:

The error in Visual Studio

Мой вопрос

Как конкретно отключить эту ошибку, не отключая другие ошибки файла SASS?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я активировал intellisense для файлов, объявленных в другом месте, ссылаясь на основной файл (в моем примере я назову его mainfile), который импортирует все остальные, используя /// <reference path="./../mainfile" />.

Код должен меняться в зависимости от вложенности основного файла (замените на имя вашего собственного исходного файла, который импортирует все остальное).Также разница между файлом scss, который вы добавляете.Например, для двух папок глубиной ./.. для трех ../.. и т. Д.

Другой пример.Я обычно называю свой начальный файл main, а все файлы scss имеют глубину две-три папки.

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

К сожалению, я не нашел динамического способа ссылки на путь, основанный на неизвестных членах файлов.Также эта строка должна быть добавлена ​​к каждому отдельному файлу.

Приведенное выше решение предлагает intellisense, который сортирует ошибку, и вы можете увидеть значения при наведении курсора, перейти к определению и т. Д.

0 голосов
/ 27 ноября 2018

Это из-за того, как редактор VS SCSS разрешает переменные.Это происходит с точки зрения редактируемого файла;поскольку экземпляр редактора SCSS для _mixins.scss не знает, как разрешается импорт в site.scss, у него нет способа разрешить эту ссылку.Если бы _mixins.scss имел цепочку @import вплоть до _settings-ltr.scss (или -rtl), тогда он мог бы разрешить переменную, и ошибка не будет отображаться.

Аналогичная обратная связь былаподнял здесь также.Было бы целесообразно открыть новый элемент обратной связи, чтобы лучше описать сценарий (а также то, что вы используете для компиляции SCSS, например, если вы используете WebPack), чтобы команда могла расставить приоритеты как изменение проекта.Он не будет сразу решен, но мы учитываем количество элементов обратной связи для определения очередности отставания. (И я хотел бы иметь больше боеприпасов, чтобы сделать эту функцию приоритетной ...)

В настоящее время в VS нет способа отключить конкретную ошибку SCSS.Это может быть другой запрос функции, но для реализации он будет иметь низкий приоритет.

...