Я не думаю, что они находятся в прямой конкуренции и не исключают друг друга.

Фактически, вы можете использовать Webpack как часть рабочего процесса Gulp или наоборот.

Для меня разница сводится к личным предпочтениям.

Gulp является программным, а Webpack - декларативным. Это различие широко известно в кругах информатики как code vs configuration или convention over configuration.

Если вы посмотрите на конфигурацию Gulp, вы обнаружите, что это набор задач, связанных вместе.

Находясь в конфигурации Webpack, вы увидите набор объявлений переменных.

Я не думаю, что здесь есть явный победитель. Не выбирайте один, потому что он более «популярен», чем другой. Выберите тот, в котором вы чувствуете себя как дома.

Вот один из вариантов использования, в котором Gulp может быть лучше для вас. Например, в процессе разработки я синхронизирую файлы на локальном компьютере с удаленным через ssh. Каждый раз, когда я делаю локальное изменение, этот файл загружается на удаленный сервер. Я использую удаленный сервер, потому что установка зависимостей npm там довольно быстрая по сравнению с моим локальным компьютером. Я сделал это с помощью плагина gulp под названием gulp-ssh. Я пытался найти ту же функцию в Webpack, но не нашел. Ближайший плагин, который я смог найти, - это тот, который развертывает всю папку сборки на удаленный компьютер, но это не то, что мне нужно.

Если у вас действительно нет особых потребностей в вашем проекте, возможно, Webpack - это все, что вам нужно. Это действительно то, что вы настраиваете один раз и редко прикасаетесь снова. Если вы похожи на меня, кто хочет большего контроля и любит писать сценарии, то Gulp может быть лучшим выбором для вас. В моем случае я склонен время от времени изменять свои сценарии gulp во время разработки, поскольку я открываю новые способы автоматизации.

Продолжение следует…