От много години съм напълно доволен от @import, но времената се променят...
Затова се опитвам да преместя проектите си от @import към @use и @forward и открих тази публикация е доста полезна. Но когато се опитвам да внедря @use в моите части, продължавам да получавам „недефиниран миксин“. Мисля, че може да съм разбрал погрешно начина, по който работи @use, но не мога да разбера къде сбърках. Стигнах до точката, в която просто искам да се изкача на следващата църковна кула и да започна да стрелям по хора ... което също не ми помага да се концентрирам ;)
Така че съкратих всичко до много основни части от код, за да изследвам проблема при „лабораторни условия“. Ето какво измислих:
Папки и файлове:
styles.scss
├── a_tools
│ └── _mixins.scss
├── b_settings
│ └── _global.scss
└── c-components
└── _test.scss
_mixins.scss:
@use '../b_settings/global' as *;
@function bp($bp) {
@return ($breakpoints, $bp);
}
@mixin vp-medium {
@media (min-width: #{breakpoints(small) + 1}) and (max-width: #{breakpoints(medium)}) {
@content;
}
}
_gobal.scss:
$breakpoints: (
'small': 767px,
'medium': 1024px,
'navigation': 840px,
);
:root {
--vp-name: small;
}
@include vp-medium {
:root {
--vp-name: medium;
}
}
_test.scss:
@use 'a_tools/mixins' as *;
@use 'b_settings/global' as *;
.test {
margin: 10px;
@include vp-medium {
margin: 20px;
}
}
styles.scss:
@use 'c_components/test';
Компилирането продължава да хвърля „недефиниран миксин на ред 15, колона 1 на _global.scss“, което е редът „@include vp-medium {“. Компилиран с Dart Sass 1.32.8.
Кой може да ми каже къде съм попаднал на грешен път? Благодаря предварително!