Перейти к содержанию

Использование плагинов

Как я уже отмечал ранее, CSS-препроцессор Less имеет возможность подключения плагинов, расширяющих основной функционал препроцессора. Все доступные на сегодняшний момент плагины можно найти в пакетном менеджере npm, используя для поиска ключевое слово — "less-plugin". Среди них довольно большое количество интересных и даже необходимых плагинов. Однако, давайте сначала посмотрим на то, как подключать плагины при компиляции less-файлов из консоли.

Дальнейшие манипуляции будут производиться с плагином less-plugin-functions, добавляющим возможность создания пользовательских функций.

Первым делом установим этот плагин локально или глобально. Я буду устанавливать глобально, поэтому у себя в консоли выполняю следующую команду:

npm i -g less-plugin-functions

Теперь обратимся к документации плагина и напишем небольшой пример, демонстрирующий работу функций:

// Исходя из документации, функции всегда должны начинаться со слова `function`
.function-hello() {
  return: 'Hello!';
}

// Вызов функции производится без ключевого слова `function`
.test {
  content: hello();
}

Когда компилятор встретит на своём пути какую-нибудь функцию, он подставит вместо её вызова значение, возвращаемое этой функцией. Всё как в JavaScript. Для того, чтобы скомпилировать этот файл, необходимо выполнить команду:

lessc --functions styles.less

.test {
  content: "Hello!";
}

Заметьте, так как я не указал имя файла, в который компилятору необходимо сохранить результат компиляции — полученный результат был выведен в консоль.

Разумеется, простым возвращением результата функционал этого плагина не заканчивается: вы можете производить вычисления, конкатенировать значения свойств, вызывать другие функции и примеси...

Чтобы применить к файлу несколько плагинов, необходимо просто добавить их в команду, выполняемую в консоли:

lessc --functions --inline-urls styles.less

Использование плагинов в браузере

В документации сказано, что любой плагин может работать с компилятором, подключаемым как внешний скрипт к странице с одним лишь условием: подключение плагина и его описание должно быть произведено раньше, чем будет подключён сам файл библиотеки less.js:

<script src="plugin.js"></script>
<script>
  less = {
    plugins: [plugin]
  }
</script>
<script src="less.min.js"></script>

Здесь кроется одна большая проблема — чтобы начать использовать плагины в браузере, необходимо найти хотя бы один плагин, который способен это делать без предварительной сборки. Дело в том, что браузер не умеет работать с require(), используемым для подключения файлов скриптов в мире Node.js. Почти все плагины используют require(), так как разбиты на несколько логических файлов. Поэтому, перед тем, как приступить к подключению заветного плагина к странице — его нужно собрать, используя для этого, например, Browserify. К счастью, это не входит в план книги.