HTML Diff
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