Sass @use не работает с отдельными файлами миксина в файле мастер-миксина (ERR: Undefined Mixin) - PullRequest
1 голос
/ 29 мая 2020

Я немного новичок в sass, но когда я его изучал, на сайте Sass было сказано начать использовать @use вместо импорта, поэтому после долгих проб и ошибок я наконец понял, как его использовать. то же, что и import.

Примечание: я использую Prepros для компиляции.

У меня есть этот миксин в собственном файле внутри папки mixins:

// scss/mixins/_flex.scss

@mixin flex($flex-flow: row, $justify-content: center, $align-items: center) {
    display: flex;
    justify-content: $justify-content;
    align-items: $align-items;
    flex-flow: $flex-flow;
}

Я пробовал @use вставить его в свой основной _mixins.scss файл:

// scss/_mixins.scss

@use "mixins/flex" as *;

Затем я попытался использовать его в другом из моих файлов, содержащих общие элементы:

// scss/_common_elements.scss

@use "mixins" as *;

.flex {
  @include flex();
}

Затем я получаю сообщение об ошибке в журнале Prepros: Undefined Mixin, где я вызываю строку @include flex(); (внутри _common_elements.s css)

Она работала, пока я не решил поставить миксины в своей отдельной папке, но это то же самое, что и в исходном коде Bootstraps.

Весь процесс использования @use действительно сбивает с толку.

Кто-нибудь знаете, почему я могу получить эту ошибку?

1 Ответ

0 голосов
/ 29 мая 2020

Мне удалось это исправить!

ТАКЖЕ: Если вы можете помочь мне отредактировать этот вопрос / ответ, чтобы лучше объяснить его правильным языком, отправьте предложения, и я обновлю его.

В файле _mixins.scss мне нужно было использовать @forward "mixins/flex" вместо @use "mixins/flex" as *;:

Вот так:

// scss/_mixins.scss 

@forward "mixins/flex";
@forward "mixins/overlay";
@forward "mixins/etc...";

I wi sh они бы что-то сделали более четкое описание фактической документации sass @use.

Вот фактические документы для @ forward.

...