Lessc не имеет ключа ‘слежения’, чтобы выполнять перекомпиляцию при изменении less файлов проекта, как например это сделано у sass компилятора. Это весьма не удобно на этапе верстки шаблона из макета.
Для отслеживания я установил UNIX утилиту inotify. В зависимости от вашей OS используйте соответствующий установщик пакетов. Для Ubuntu я использовал команду:
1 |
sudo apt-get install inotify-tools |
Inotify — это подсистема ядра Linux, которая позволяет получать уведомления об изменениях в файловой системе, т.е. как раз то, что нам и нужно.
Логика следующая: мы отслеживаем событие «close_write» в определенной папке и при необходимости запускаем компилятор lessc.
А так как css файлы используются у меня дальше в CMS Drupal, то я дополнительно выполняю команду drush cc css-js. У вас могут быть какие то файловые операции, которые связаны со сбросом кеша или перемещением файлов после получения новой версии CSS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash # каталог с лесс (*.less) файлами, изменение которых нужно отслеживать # укажите ваш каталог TRACKDIR=/var/www/... # бесконечный цикл (пока в консоли не нажмете CTRL+C) inotifywait -e modify -m -r $TRACKDIR |\ ( while read do # компилируем нужные файлы lessc $TRACKDIR/... > /CSSdir/CSSfileName ... # здесь же можно выполнить связанные с перекомпиляцией # другие файловые операции # у меня это был, к примеру сброс кеша в Drupal cd /var/www/... drush cc css-js done ) |