Как я могу сослаться на переменную, определенную в центральном файле variable.less, в отдельном файле module.less, если модуль напрямую не ссылается на variable.less?
Вот структура моей папки Styles:
Styles
_variables.less
Site.less
Modules
_forms.less
_navbar-top.less
_panels.less
_titlebar.less
Modules.less
Pages
_page1.less
_page2.less
Pages.less
Файл Site.less в основном выглядит так:
@import "_variables.less";
@import "Modules/Modules.less";
@import "Pages/Pages.less";
(включает только файлы LESS с заглавной буквы)
И Modules.less выглядит так:
@import "_forms.less";
@import "_navbar-top.less";
@import "_panels.less";
@import "_titlebar.less";
(включает только файлы с префиксом подчеркивания в той же папке)
Pages.less устроен так же.
Я хочу, чтобы в файле Modules/_panels.less было следующее:
.panel-form {
.panel-variant(1px; @text-color; @component-default-bg; 1px);
border-top: solid darken(@component-default-bg, 1px);
border-bottom: solid darken(@component-default-bg, 1px);
border-left: none;
border-right: none;
}
Но, конечно же, мой LESS-компилятор (Visual Studio Web Essentials 2013.5) выдает ошибку и отказывается компилировать файл _panels.less, потому что он ссылается на переменную, которая не существует в ее области видимости.
В настоящее время мой обходной путь — объявить .panel-form в Site.css, но это хак — я не хочу начинать объявлять там произвольное количество модулей.
Можно ли ссылаться на такую переменную и при этом компилировать в CSS, и если да, то как? Если нет, есть ли лучшая структура, которую я должен использовать?
Кстати, я заметил, что компилятору LESS тоже не нравится Bootstrap, потому что он вызывает ошибки, если я ввожу один пробел в LESS-файл Bootstrap, например. navbar.less и попробуйте его сохранить, сообщив, что (для navbar.less) миксин .clearfix()
не определен. Что, конечно же, так и есть, потому что navbar.less не ссылается на mixins.less, но если он может скомпилироваться из bootstrap.less и ниже, тогда все будет работать нормально...