Я работаю с Bootstrap 2.0.3, используя LESS. Я хочу широко настраивать его, но я хочу избегать внесения изменений в источник, когда это возможно, поскольку изменения в библиотеках происходят часто. Я новичок в LESS, поэтому я не знаю, как полностью работает его компиляция. Каковы некоторые лучшие практики для работы с LESS или основанными на LESS средами?
twitter-bootstrap
less
Джоэл Роджерс
источник
источник
Ответы:
Мое решение аналогично jstam, но я избегаю внесения изменений в исходные файлы, когда это возможно. Учитывая, что изменения в начальной загрузке будут частыми, я хочу иметь возможность вытащить последний источник и внести минимальные изменения, сохранив мои изменения в отдельных файлах. Конечно, это не полностью пуленепробиваемое.
Скопируйте bootstrap.less и variables.less в родительский каталог. Переименуйте bootstrap.less в theme.less или как хотите. Ваша структура каталогов должна выглядеть следующим образом:
Обновите все ссылки в theme.less, чтобы они указывали на подкаталог начальной загрузки. Убедитесь, что ваш переменный .less ссылается из родительского, а не из каталога начальной загрузки, вот так:
...
Добавьте свои CSS-переопределения в файл theme.less сразу после того, как они включены.
Ссылка на theme.less вместо bootstrap.less на ваших HTML-страницах.
Всякий раз, когда выходит новая версия, ваши изменения должны быть в безопасности. Вы также должны делать различие между вашими пользовательскими файлами начальной загрузки всякий раз, когда выходит новая версия. Переменные и импорт могут измениться.
источник
Это то, с чем я тоже боролся. С одной стороны, я хочу сильно настроить файл variables.less с моими собственными цветами и настройками. С другой стороны, я хочу немного изменить файлы Bootstrap, чтобы облегчить процесс обновления.
Мое решение (на данный момент) состоит в том, чтобы создать дополнительный файл LESS и вставить его в
bootstrap.less
файл после того, как переменные и миксины были импортированы. Так что-то вроде этого:Таким образом, если я хочу сбросить цвета Bootstrap, шрифты или добавить дополнительные миксины, я могу. Мой код является отдельным, но будет скомпилирован в остальной части импорта Bootstrap. Это не идеально, но это временная задержка, которая хорошо сработала для меня.
источник
bootstrap.less
, захватывая наш настроенный файл VS, потенциально меняющий много строк, если изменяется ядро без имен файлов и т. Д. Я использовал это решение, перекомпилировал мой минимизированный JS с помощью grunt и все хорошо в капоте! Настройки работают без каких-либо не дружественных!important
заявлений!Со своей стороны, у меня просто есть файл с именем, в
theme.less
котором есть импортboostrap.less
, и чуть ниже я переопределяю (даже если это кажется плохим при использовании LESS, но хорошо, проще поддерживать) значение переменной, которую я не хочу обновлять ,Это хорошо работает для наличия пользовательских значений для переменных в
variables.less
После этого я компилирую свой
theme.less
файл вместоbootstrap.less
Пример
theme.less
:источник
Гораздо лучший (IMHO) подход заключается в том, чтобы воспользоваться репликой проекта github Bootswatch под названием swatchmaker . Этот проект специально предназначен для создания и управления десятками тем Bootstrap на веб-сайте.
В
Makefile
сборке проектаswatchmaker.less
(вы можете переименовать его в нечто подобноеcustomizations.less
). Этот файл содержит кучу импортов:Вы можете переименовать
swatch
папку иbootswatch.less
файлы в любое удобное для вас место.Это имеет смысл, поскольку вы можете обновить Bootstrap, не затрагивая ваши собственные файлы. Фактически, он
Makefile
также содержит команды для получения последней версии Bootstrap. Смотрите README на странице проекта для получения дополнительной информации.В качестве бонуса, README также предлагает установить
watchr
гем, который автоматически создаст проект при.less
изменении файла.источник
Если (И ТОЛЬКО ЕСЛИ) у вас есть время, вы можете сделать это, как я. Я сохраняю свою модифицированную версию фреймворка (ов) и с каждым обновлением фреймворка я читаю документы и проверяю источник на наличие модификаций.
Это решение может показаться менее идеальным с первого взгляда, но у меня есть причины для этого. Я работаю не с одной, а с множеством фреймворков, передовых практик, таблиц стилей сброса / нормализации и т. Д., И я всегда уверен, что никакие обновления никогда не изменят существующие проекты так, как я не ожидал.
Я работаю со своей собственной платформой по следующим причинам.
источник
Я пришел к тому же решению, что и Джоэл:
Пользовательские файлы меньше
Как описано выше: я создаю локальные копии для всех файлов Less, которые я настраиваю: например: «variable-custom.less», «alerts-custom.less», «buttons-custom.less». Так что я могу использовать некоторые стандарты и иметь свои дополнения. Недостатком является то, что когда Bootstrap будет обновлен, его будет очень сложно перенести.
Но есть кое-что еще:
Переопределить стили
При поиске рабочих процессов я часто вижу людей, предлагающих просто переопределить стили. Таким образом, вы сначала импортируете стандартные файлы Less, а затем добавляете свои пользовательские объявления внизу. Плюс здесь: проще обновиться до более новой версии. Недостатком является то, что: скомпилированный файл CSS содержит все переопределения. Некоторые селекторы CSS определены дважды. Таким образом, браузер должен сделать некоторую подъемную работу, чтобы выяснить, что применять на самом деле. Это не совсем чисто.
Мне интересно, почему препроцессоры не настолько умны, чтобы решать такие двойные объявления? Есть ли какой-нибудь лучший рабочий процесс, которого мне здесь не хватает?
источник
Просто добавьте
@import "../../styles.less";
(или где ваша таблица стилей) в bootstrap.less внизу. Это позволяет вам использовать миксины Bootstrap как.gradient
или.border-radius
внутри вашего стиля styles.less.источник