Рассмотрим очень нужный и полезный плагин
под Gulp для компиляции файлов Sass в файлы формата CSS. Для разработчиков, которые пользуются препроцессором Sass данный плагин
1 gulp-ruby-sassпросто необходим.
1 gulp-ruby-sass
Для компиляции Sass в CSS под Gulp имеется несколько плагинов. Например,
или 1
gulp-sass
. Более стабильным плагином является 1
gulp-ruby-sass
. Вот его мы и установим.1
gulp-ruby-sass
Установка плагина gulp-ruby-sass
Команда установки уже стандартная для нас:
В директории
заранее помещены мною два scss-файла 1
sass
и 1
main.scss
:1
style.scss
После этого создаю именованную задачу
для плагина 1
sass
:1
gulp-ruby-sass
И запускаем задачу
:1
sass
Оба файла скомпилированы
и 1
main.scss
и помещены по пути 1
style.scss
:1
build/css
Взглянем на содержимое хотя бы одного из них (пускай это будет
), чтобы убедиться в том, что это уже CSS-файл, а не SCSS-файл:1
main.css
Да, действительно, перед нами CSS-файл!
Добавление опций к плагину gulp-ruby-sass
До этого момента все плагины, которые мы устанавливали и настраивали в виде задач, были без опций. То есть, в потоке мы просто вызывали плагин через переменную и передавали ему данные для обработки. На этом работа плагина заканчивалась.
Однако внимательный читатель мог уже при первом знакостве с плагинами заметить, что в руководстве почти к каждому из них, помимо описания установки, есть раздел, посвященный опциям данного плагина. Другими словами, плагин может не просто обрабатывать данные, а обрабатывать так, как нам это нужно.
Что касается плагина
, то данный плагин может производить компиляцию из Sass в CSS несколькими способами. Достаточно почитать раздел API к документации к нему - gulp-ruby-sass.1
gulp-ruby-sass
Мы же воспользуемся всего одной опцией из этого списка и сделаем так, чтобы результат компиляции был более сжатым. Для этого немного изменим созданную ранее задачу
и добавим опцию 1
sass
к переменной 1
style: 'compressed'
:1
sass
Снова запустим задачу
из консоли:1
sass
И взглянем на результат компиляции файла
в файл 1
main.scss
:1
main.css
Отлично! Видим, что плагин
действительно отработал с опцией 1
gulp-ruby-sass
и произвел не просто компиляцию из SCSS в CSS, но и сжатие CSS-файла 1
compressed
- удалены все лишние пробелы и табуляция, выкинуты лишние точки с запятой, а все CSS-правила размещены в одну строку.1
main.css
Объединение нескольких плагинов в одной задаче
До недавнего момента при работе в Gulp мы всегда поступали таким образом - “один плагин - одна задача”. Однако, Gulp гораздо гибче и мощнее, чем можно было бы подумать. В частности, в одной задаче можно объединить несколько ранее установленных плагинов именно благодаря поточности Gulp.
Чтобы было более понятно, разберем все вышесказанное на живом примере. Дополним задачу
плагином конкатенации, чтобы “склеить” два результирующих файла 1
sass
и 1
main.css
в один файл 1
style.css
. Как вы уже догадались, для этой цели мы воспользуемся уже установленным ранее плагином 1
compile.css
.1
gulp-concat
Видоизменим задачу
, добавив строку 1
sass
после строки с вызовом плагина 1
.pipe(concat('compile.css'))
:1
gulp-ruby-sass
Вновь запустим в консоли задачу
:1
sass
Посмотрим содержимое по пути
:1
build/css
Файл
появился по указанному пути. Взглянем на его содержимое в редакторе Sublime Text:1
compile.css
Пример получился не совсем удачный, но, тем не менее, наглядный. Видим, чтобы оба плагина отработали. Была произведена компиляция, а затем “склейка” двух файлов в один.
Конечно, благодаря поточности в Gulp, в одну задачу можно добавлять не два плагина, а гораздо больше.