Мои компоненты разбиты по папкам:
/components
--/search
----/index.js
----/search.jsx
----/search.scss
--/button
----/index.js
----/button.jsx
----/button.scss
--/input
----/index.js
----/input.jsx
----/input.scss
Каждый компонент содержит свои стили.
Так же у меня есть папка scss, которая содержит общие утилиты:
/components
...
/scss
--/utils
----/_functions.scss
----/_variables.scss
В главной папке scss, я создал файл, который содержит стили, которые я хочу использовать в других местах, через
@extend;
%style {
color: red;
}
Я импортирую этот файл, в каждый из компонентов
// ../search.scss
.search {
@extend %style;
}
// ../button.scss
.search {
@extend %style;
}
// ../input.scss
.input {
@extend %style;
}
В результате, я ожидаю что директива
@extend при компиляции объединит эти классы и задаст им единый стиль:
.search,
.button,
.input {
color: red;
}
Но этого не происходит, и все стили компилируются отдельно:
.search {
color: red;
}
button {
color: red;
}
.input {
color: red;
}
Почему так происходит?