0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>На протяжении всего курса мы будем работать с файлом<em>gulpfile.js</em>. Вспомним структуру проекта:</p>
1
<p>На протяжении всего курса мы будем работать с файлом<em>gulpfile.js</em>. Вспомним структуру проекта:</p>
2
<p>layout-project/ ├── build/ ├── src/ │ ├── sass/ │ │ └── app.scss │ ├── pages/ │ │ ├── index.pug │ │ ├── sections/ │ │ │ ├── head.pug │ │ │ └── footer.pug ├── gulpfile.js ├── package.json └── node_modules/</p>
2
<p>layout-project/ ├── build/ ├── src/ │ ├── sass/ │ │ └── app.scss │ ├── pages/ │ │ ├── index.pug │ │ ├── sections/ │ │ │ ├── head.pug │ │ │ └── footer.pug ├── gulpfile.js ├── package.json └── node_modules/</p>
3
<p>Обратите внимание, что файл находится в директории<em>layout-project/</em>, а не<em>src/</em>. Такие вещи очень важны, так как расположение файла влияет на то, как мы будем указывать пути. Если вы видите, что сборка не идёт, либо что-то идёт неправильно, то, в первую очередь, проверьте месторасположение файла<em>gulpfile.js</em>и путей, которые там прописаны. С такой проблемой можно встретиться, если вы скопировали файл из другого проекта.</p>
3
<p>Обратите внимание, что файл находится в директории<em>layout-project/</em>, а не<em>src/</em>. Такие вещи очень важны, так как расположение файла влияет на то, как мы будем указывать пути. Если вы видите, что сборка не идёт, либо что-то идёт неправильно, то, в первую очередь, проверьте месторасположение файла<em>gulpfile.js</em>и путей, которые там прописаны. С такой проблемой можно встретиться, если вы скопировали файл из другого проекта.</p>
4
<p>Весь файл<em>gulpfile.js</em>можно условно разделить на три части:</p>
4
<p>Весь файл<em>gulpfile.js</em>можно условно разделить на три части:</p>
5
<ul><li>Подключение необходимых компонентов для работы</li>
5
<ul><li>Подключение необходимых компонентов для работы</li>
6
<li>Функции-задачи, которые определяют операции</li>
6
<li>Функции-задачи, которые определяют операции</li>
7
<li>Экспорт задач по умолчанию</li>
7
<li>Экспорт задач по умолчанию</li>
8
</ul><p>Не стоит акцентироваться на этом, так как эти операции не расположить в другом порядке :)</p>
8
</ul><p>Не стоит акцентироваться на этом, так как эти операции не расположить в другом порядке :)</p>
9
<p><strong>Важно:</strong>в этом курсе будет использоваться код на<em>JavaScript</em>. Если вы не изучали этот язык, то, перед продолжением, пройдите курс<a>Введение в программирование</a>. Из этого курса вы узнаете базовые основы языка, изучите функции, подключение пакетов, экспорт функций. Всё это будет использоваться в Gulp</p>
9
<p><strong>Важно:</strong>в этом курсе будет использоваться код на<em>JavaScript</em>. Если вы не изучали этот язык, то, перед продолжением, пройдите курс<a>Введение в программирование</a>. Из этого курса вы узнаете базовые основы языка, изучите функции, подключение пакетов, экспорт функций. Всё это будет использоваться в Gulp</p>
10
<p>Создадим первую задачу на Gulp:</p>
10
<p>Создадим первую задачу на Gulp:</p>
11
<p>Что здесь происходит? Основная информация содержится в функции firstTask - это и есть та задача, которую сможет выполнить Gulp. Важно обратить внимание на переданный аргумент done. Не стоит вдаваться в то, откуда он берётся и что лежит внутри. Для нас важно, что это функция, которая вызывается в конце задачи для того, чтобы указать на её окончание.</p>
11
<p>Что здесь происходит? Основная информация содержится в функции firstTask - это и есть та задача, которую сможет выполнить Gulp. Важно обратить внимание на переданный аргумент done. Не стоит вдаваться в то, откуда он берётся и что лежит внутри. Для нас важно, что это функция, которая вызывается в конце задачи для того, чтобы указать на её окончание.</p>
12
<p>Название задачи выбираете вы сами. Здесь нет каких-то ограничений, но старайтесь называть задачи понятно. Если в задаче происходит работа с CSS, то не надо называть задачу<em>WindowsOmegaTask</em>. Подробнее про именование можно прочитать в нашем блоге:</p>
12
<p>Название задачи выбираете вы сами. Здесь нет каких-то ограничений, но старайтесь называть задачи понятно. Если в задаче происходит работа с CSS, то не надо называть задачу<em>WindowsOmegaTask</em>. Подробнее про именование можно прочитать в нашем блоге:</p>
13
<ul><li><a>Совершенный код: именование в программировании</a></li>
13
<ul><li><a>Совершенный код: именование в программировании</a></li>
14
<li><a>Совершенный код: ошибки именования в программировании I</a></li>
14
<li><a>Совершенный код: ошибки именования в программировании I</a></li>
15
</ul><p>Внутри задачи вы можете производить различные действия, не обязательно связанные с преобразованием. Это могут быть и просто информативные задачи, как в примере выше. В этой задаче есть только вывод console.log(). Отсутствие ограничений позволяет разбивать большие функции и делать код удобным для чтения.</p>
15
</ul><p>Внутри задачи вы можете производить различные действия, не обязательно связанные с преобразованием. Это могут быть и просто информативные задачи, как в примере выше. В этой задаче есть только вывод console.log(). Отсутствие ограничений позволяет разбивать большие функции и делать код удобным для чтения.</p>
16
<p>Чтобы Gulp мог запустить задачу, её необходимо экспортировать:</p>
16
<p>Чтобы Gulp мог запустить задачу, её необходимо экспортировать:</p>
17
<p>В этом примере экспорт идёт с именем default. И действительно, это задача по умолчанию, которую Gulp выполняет если запустить команду gulp в директории с проектом.</p>
17
<p>В этом примере экспорт идёт с именем default. И действительно, это задача по умолчанию, которую Gulp выполняет если запустить команду gulp в директории с проектом.</p>
18
<p>При выполнении задачи Gulp показывает не только результат выполнения задачи, но и дополнительную информацию:</p>
18
<p>При выполнении задачи Gulp показывает не только результат выполнения задачи, но и дополнительную информацию:</p>
19
<ul><li>Файл<em>gulpfile.js</em>из которого выполняется задача</li>
19
<ul><li>Файл<em>gulpfile.js</em>из которого выполняется задача</li>
20
<li>Имя выполняемой задачи. В примере это<em>default</em></li>
20
<li>Имя выполняемой задачи. В примере это<em>default</em></li>
21
<li>Время выполнение задачи</li>
21
<li>Время выполнение задачи</li>
22
</ul><h2>Экспорт задач</h2>
22
</ul><h2>Экспорт задач</h2>
23
<p>Не обязательно использовать только задачу default. Можно использовать произвольные названия задач, и, даже, экспортировать разные задачи с разными именами. Доработаем немного пример и рассмотрим вызов определённых задач:</p>
23
<p>Не обязательно использовать только задачу default. Можно использовать произвольные названия задач, и, даже, экспортировать разные задачи с разными именами. Доработаем немного пример и рассмотрим вызов определённых задач:</p>
24
<p>В этом примере добавилось несколько новых вещей. Рассмотрим их подробнее</p>
24
<p>В этом примере добавилось несколько новых вещей. Рассмотрим их подробнее</p>
25
<p>Здесь происходит подключение функции parallel() из пакета<em>Gulp</em>. Эта функция позволяет объединять несколько функций в одну задачу. Именно функция parallel() используется при экспорте задач в этом примере.</p>
25
<p>Здесь происходит подключение функции parallel() из пакета<em>Gulp</em>. Эта функция позволяет объединять несколько функций в одну задачу. Именно функция parallel() используется при экспорте задач в этом примере.</p>
26
<p>В этом примере экспортируются три задачи:</p>
26
<p>В этом примере экспортируются три задачи:</p>
27
<ul><li>default - задача по умолчанию, которая выполняет три функции: sassCompile(), pugCompile() и imagesOptimize(). Для запуска задачи достаточно просто запустить gulp</li>
27
<ul><li>default - задача по умолчанию, которая выполняет три функции: sassCompile(), pugCompile() и imagesOptimize(). Для запуска задачи достаточно просто запустить gulp</li>
28
</ul><ul><li>layoutCompile - задача, вызывающая только функции, связанные с компиляцией файлов вёрстки. Для запуска задачи используется команда gulp layoutCompile</li>
28
</ul><ul><li>layoutCompile - задача, вызывающая только функции, связанные с компиляцией файлов вёрстки. Для запуска задачи используется команда gulp layoutCompile</li>
29
</ul><ul><li>assetsOptimize - задача, вызывающая функцию imagesOptimize(). Для запуска задачи используется команда gulp assetsOptimize</li>
29
</ul><ul><li>assetsOptimize - задача, вызывающая функцию imagesOptimize(). Для запуска задачи используется команда gulp assetsOptimize</li>
30
</ul>
30
</ul>