0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><em>Gulp</em>предоставляет максимальное количество инструментов для удобной работы с обработкой файлов. Большинство функций мы рассмотрели в прошлых уроках, но все они работают с самими файлами и не занимаются их преобразованием. Например, в<em>Gulp</em>нет встроенной функции для перевода SASS в CSS, а ведь это именно то, что хочется видеть от такого инструмента.</p>
1
<p><em>Gulp</em>предоставляет максимальное количество инструментов для удобной работы с обработкой файлов. Большинство функций мы рассмотрели в прошлых уроках, но все они работают с самими файлами и не занимаются их преобразованием. Например, в<em>Gulp</em>нет встроенной функции для перевода SASS в CSS, а ведь это именно то, что хочется видеть от такого инструмента.</p>
2
<p>И здесь нет противоречий - <em>Gulp</em>действительно даёт только платформу, "ядро", вокруг которого мы можем выстраивать различные манипуляции с данными.</p>
2
<p>И здесь нет противоречий - <em>Gulp</em>действительно даёт только платформу, "ядро", вокруг которого мы можем выстраивать различные манипуляции с данными.</p>
3
<p>В этом уроке рассмотрим несколько базовых плагинов, которые помогут верстальщику при работе с<em>Gulp</em>. Научимся устанавливать и использовать их в своей работе.</p>
3
<p>В этом уроке рассмотрим несколько базовых плагинов, которые помогут верстальщику при работе с<em>Gulp</em>. Научимся устанавливать и использовать их в своей работе.</p>
4
<h2>Установка сторонних плагинов</h2>
4
<h2>Установка сторонних плагинов</h2>
5
<p>Сторонние плагины для<em>Gulp</em>- это знакомые нам<em>npm-пакеты</em>. Поэтому их установка ничем не отличается. Всё, что требуется - установить пакет и подключить его в начале созданного<em>gulpfile.js</em>.</p>
5
<p>Сторонние плагины для<em>Gulp</em>- это знакомые нам<em>npm-пакеты</em>. Поэтому их установка ничем не отличается. Всё, что требуется - установить пакет и подключить его в начале созданного<em>gulpfile.js</em>.</p>
6
<p>Для поиска пакетов удобно использовать сайт<a>npmjs.com</a>. Например, чтобы найти обработчик для SASS файлов можно, в поиске, указать два ключевых слова:</p>
6
<p>Для поиска пакетов удобно использовать сайт<a>npmjs.com</a>. Например, чтобы найти обработчик для SASS файлов можно, в поиске, указать два ключевых слова:</p>
7
<ul><li>gulp</li>
7
<ul><li>gulp</li>
8
<li>sass</li>
8
<li>sass</li>
9
</ul><p>и в поиске найти самый популярный пакет. Почему именно самый популярный? Скорее всего, именно для таких пакетов есть подробная документация и исправлены основные критические ошибки. Еще важно следить за тем, когда в последний раз обновлялся пакет. Да, есть пакеты, которые исправно работают и не требуют обновления, но это скорее исключение из правил. Зачастую частые обновления говорят о том, что разработчики следят за обратной связью и исправляют критические моменты.</p>
9
</ul><p>и в поиске найти самый популярный пакет. Почему именно самый популярный? Скорее всего, именно для таких пакетов есть подробная документация и исправлены основные критические ошибки. Еще важно следить за тем, когда в последний раз обновлялся пакет. Да, есть пакеты, которые исправно работают и не требуют обновления, но это скорее исключение из правил. Зачастую частые обновления говорят о том, что разработчики следят за обратной связью и исправляют критические моменты.</p>
10
<p><strong>Важно:</strong>помимо плагина для<em>Gulp</em>в большинстве случаев требуется и сам интерпретатор/компилятор. Например, для обработки SASS нужен не только специальный пакет для<em>Gulp</em>, но и пакет<em>SASS</em></p>
10
<p><strong>Важно:</strong>помимо плагина для<em>Gulp</em>в большинстве случаев требуется и сам интерпретатор/компилятор. Например, для обработки SASS нужен не только специальный пакет для<em>Gulp</em>, но и пакет<em>SASS</em></p>
11
<h3>Sass</h3>
11
<h3>Sass</h3>
12
<p>Для обработки файлов, созданных при помощи препроцессора SASS существует пакет<a>gulp-sass</a>. Это популярный пакет, который обновляется вместе с обновлениями самого препроцессора. Для его использования требуется установить два пакета:</p>
12
<p>Для обработки файлов, созданных при помощи препроцессора SASS существует пакет<a>gulp-sass</a>. Это популярный пакет, который обновляется вместе с обновлениями самого препроцессора. Для его использования требуется установить два пакета:</p>
13
<ul><li>sass - основной компилятор SASS</li>
13
<ul><li>sass - основной компилятор SASS</li>
14
<li>gulp-sass - плагин для<em>Gulp</em></li>
14
<li>gulp-sass - плагин для<em>Gulp</em></li>
15
</ul><p>Установить всё можно одной командой:</p>
15
</ul><p>Установить всё можно одной командой:</p>
16
<p>Обработка файлов проста, поэтому, на основе уже существующей структуры, с которой мы работаем на протяжении всего курса добавим компиляцию SASS в CSS. Как и говорилось, это происходит в несколько этапов: подключение пакета и добавление его в цепочку pipe функций:</p>
16
<p>Обработка файлов проста, поэтому, на основе уже существующей структуры, с которой мы работаем на протяжении всего курса добавим компиляцию SASS в CSS. Как и говорилось, это происходит в несколько этапов: подключение пакета и добавление его в цепочку pipe функций:</p>
17
<h3>Pug</h3>
17
<h3>Pug</h3>
18
<p>Обработать<em>Pug</em>в<em>Gulp</em>можно с помощью популярного плагина<a>gulp-pug</a>. Заметили, что самые популярные плагины даже называются похожим образом? :)</p>
18
<p>Обработать<em>Pug</em>в<em>Gulp</em>можно с помощью популярного плагина<a>gulp-pug</a>. Заметили, что самые популярные плагины даже называются похожим образом? :)</p>
19
<p>Его установка и использование в точности повторяет подход, который использовался при использовании плагина<em>gulp-sass</em>. Для использования необходимо установить пакет<em>pug</em>и<em>gulp-pug</em>. Это можно сделать в одну строку:</p>
19
<p>Его установка и использование в точности повторяет подход, который использовался при использовании плагина<em>gulp-sass</em>. Для использования необходимо установить пакет<em>pug</em>и<em>gulp-pug</em>. Это можно сделать в одну строку:</p>
20
<p>Так же обработка файлов происходит по уже знакомой нам структуре: открытие файла, обработка, запись файла. Объединим с помощью функции parallel функции в рамках одной задачи build:</p>
20
<p>Так же обработка файлов происходит по уже знакомой нам структуре: открытие файла, обработка, запись файла. Объединим с помощью функции parallel функции в рамках одной задачи build:</p>
21
<p><strong>Важно:</strong>в большинстве случаев в функциях-обработчиках, таких как pug() и sass() из примеров выше, доступны дополнительные параметры, позволяющие задать тонкие настройки компиляции. Всегда обращайте внимание на доступные параметры</p>
21
<p><strong>Важно:</strong>в большинстве случаев в функциях-обработчиках, таких как pug() и sass() из примеров выше, доступны дополнительные параметры, позволяющие задать тонкие настройки компиляции. Всегда обращайте внимание на доступные параметры</p>
22
<h3>Browser Sync</h3>
22
<h3>Browser Sync</h3>
23
<p>Плагин<a>browser-sync</a>хоть и не является обработчиком в привычном нам понимании, но выполняет одну из самых полезных функций при разработке Frontend - автоматическое обновление окна браузера при выполнении функций. Вы сами можете выбирать на какие действия будет происходить перезагрузка.</p>
23
<p>Плагин<a>browser-sync</a>хоть и не является обработчиком в привычном нам понимании, но выполняет одну из самых полезных функций при разработке Frontend - автоматическое обновление окна браузера при выполнении функций. Вы сами можете выбирать на какие действия будет происходить перезагрузка.</p>
24
<p>Именно благодаря<em>browser-sync</em>возможно развернуть условное рабочее окружение, где вам не нужно беспокоиться о компиляции файлов и обновлении браузера. Всё будет происходить "на лету".</p>
24
<p>Именно благодаря<em>browser-sync</em>возможно развернуть условное рабочее окружение, где вам не нужно беспокоиться о компиляции файлов и обновлении браузера. Всё будет происходить "на лету".</p>
25
<p>Для использования<em>browser-sync</em>достаточно установить одноимённый пакет. Он подходит не только для<em>Gulp</em>, а его можно использовать как самостоятельный пакет в любых других проектах, поэтому какой-то специальной версии под<em>Gulp</em>не существует.</p>
25
<p>Для использования<em>browser-sync</em>достаточно установить одноимённый пакет. Он подходит не только для<em>Gulp</em>, а его можно использовать как самостоятельный пакет в любых других проектах, поэтому какой-то специальной версии под<em>Gulp</em>не существует.</p>
26
<p>Для начала, с помощью плагина, создадим локальный сервер. Для этого необходимо подключить плагин и инициализировать его с параметром server:</p>
26
<p>Для начала, с помощью плагина, создадим локальный сервер. Для этого необходимо подключить плагин и инициализировать его с параметром server:</p>
27
<p>Теперь, при запуске задачи server будет запущен специальный локальный сервер, корнем которого станет директория<em>build/</em>нашего проекта. После запуска вы можете перейти по адресу, указанному в поле Local или External.</p>
27
<p>Теперь, при запуске задачи server будет запущен специальный локальный сервер, корнем которого станет директория<em>build/</em>нашего проекта. После запуска вы можете перейти по адресу, указанному в поле Local или External.</p>
28
<p>У пакета browser-sync есть ещё один полезный метод .stream(), который позволяет автоматически обратиться к локальному серверу и перезагрузить его. Эта операция, в большинстве случаев, добавляется в самый конец функции внутри знакомого нам pipe(). Например, дополним пример с обработкой<em>SASS</em>и<em>Pug</em>, добавив в конец каждой функции строку .pipe(browserSync.stream()):</p>
28
<p>У пакета browser-sync есть ещё один полезный метод .stream(), который позволяет автоматически обратиться к локальному серверу и перезагрузить его. Эта операция, в большинстве случаев, добавляется в самый конец функции внутри знакомого нам pipe(). Например, дополним пример с обработкой<em>SASS</em>и<em>Pug</em>, добавив в конец каждой функции строку .pipe(browserSync.stream()):</p>
29
<p>Теперь, в качестве финального аккорда, необходимо добавить вотчеры, чтобы выполнять компиляции при изменении файлов. Но как это лучше всего сделать? Хорошим вариантом является добавление функций watch() внутри задачи создания сервера, то есть в функцию browserSyncJob(). В ней вначале будет запущен сервер, а затем вотчеры, которые будут следить за всеми изменениями файлов.</p>
29
<p>Теперь, в качестве финального аккорда, необходимо добавить вотчеры, чтобы выполнять компиляции при изменении файлов. Но как это лучше всего сделать? Хорошим вариантом является добавление функций watch() внутри задачи создания сервера, то есть в функцию browserSyncJob(). В ней вначале будет запущен сервер, а затем вотчеры, которые будут следить за всеми изменениями файлов.</p>
30
30