@Rufix

Зачем нужены Gulp/Webpack?

Запутался в понятиях, зачем нужены Gulp и Webpack. Раньше думал, что Webpack выполняет задачу собирает кучу файликов в небольшую композицию для более ресурсозатратного использования.
Но найдя тему на тостере, что такое Gulp, я вижу этот ответ: "К примеру, у вас имеется большое количество (Х штук) css или js файлов, которое вы подключаете на своих страницах посредством тэгов <link> и <src>."
Объясните пожалуйста, что делают оба этих инструмента простыми словами и в чем их отличия.
  • Вопрос задан
  • 3956 просмотров
Решения вопроса 1
Это Taskrunners (запускатели задач), предназначение которых - с помощью JavaScript-библиотек автоматизировать большое количество различных процессов, которые производятся с ресурсами проекта при разработке и отправке в продакшн.

Например,
– Компиляция файлов препроцессоров в CSS
– Объединение большого количества файлов стилей в один
– CSS, JS, HTML, SVG -минификация
– Сжатие изображений
– Создание спрайтов из отдельный SVG-файлов
– Оптимизация и в какой-то степени "валидация" HTML (например, проставить атрибут alt у всех img
– и много другого
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@xfg
Webpack - это сборщик модулей, который позволяет писать модульный код, где каждый модуль имеет возможность импортировать различные зависимости, начиная от других модулей, до css стилей и изображений. На главной странице сайта даже есть пример, вы подаете на вход "модули с зависимостями", а на выходе получаете то, что сможет работать в браузере.

Webpack - это просто крайняя точка развития идеи самовызывающихся функций, с помощью которых пытались решить проблему загрязнения глобальной области видимости, когда каждый скрипт подключенный к странице мог свободно обращаться к любым переменным и функциям из других скриптов, что приводило к различным проблемам, вроде случайного переопределения переменных, неявных зависимостей и необходимости строгой последовательности подключения скриптов. Эта идея затем переросла в requirejs, затем в browserify и вот в наши дни - webpack/rollup/parcel. Webpack анализирует зависимости, которые вы подключаете в вашем коде и собирает из этого конечный bundle, который сможет работать в браузере.

Gulp - это менеджер задач для автоматизации различных рутинных операций, таких как минификация, тестирование, объединение файлов и тому подобное. Gulp в отличии от Webpack никак не анализирует ваш код. Он вообще ничего не делает и по-сути своей бесполезен.

Gulp - это набор оберток-плагинов над различными утилитами. Это ведет к ряду проблем - плагины перестают поддерживаться разработчиками, плагины ломаются при очередном мажорном релизе Gulp, плагины не позволяют вам использовать новую версию утилиты, до тех пор, пока разработчик плагина не выпустит новую версию плагина совместимую с новой версией утилиты. Инструмент, который изначально возник, чтобы помочь решать возникающие проблемы, сам превратился в проблему. Это всё привело к тому, что от Gulp стали отказываться в пользу чистых утилит, которые теперь запускают через npm скрипты. Если посмотрите любые популярные open-source библиотеки, например bootstrap, то сможете заметить, что в 3 версии был Gulp, в 4 версии его не стало. Использовать Gulp сегодня не имеет смысла. Идея Gulp/Grunt - умерла, так как идея оберток-плагинов не принесла ничего, кроме дополнительных проблем.
Ответ написан
Комментировать
verkhoturov
@verkhoturov
Frontend Developer
Вот здесь и здесь достаточно подробно расписано.

Но если совсем в двух словах:
Gulp - для верстки
Webpack - для js-приложений.

Попробуйте оба в деле. Тогда вопросы отпадут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы