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