Grunt и Gulp на самом деле являются исполнителями задач, и у них есть различия, такие как задачи, управляемые конфигурацией, и преобразования на основе потоков. У каждого есть свои сильные и слабые стороны, но, в конце концов, они в значительной степени помогают вам создавать задачи, которые можно запускать для решения более крупной проблемы сборки. В большинстве случаев они не имеют ничего общего с фактическим временем выполнения приложения, а скорее преобразуют или помещают файлы, конфигурации и другие вещи на место, чтобы время выполнения работало должным образом. Иногда они даже порождают серверы или другие процессы, необходимые для запуска вашего приложения.
Webpack и Browserify - это сборщики пакетов. По сути, они предназначены для обработки всех зависимостей пакета и объединения их исходного кода в один файл, который (в идеале) можно использовать в браузере. Они важны для современной веб-разработки, потому что мы используем очень много библиотек, предназначенных для работы с Node.js и компилятором v8 . Опять же, есть плюсы и минусы, а также разные причины, по которым некоторые разработчики предпочитают одно или другое (а иногда и то и другое!). Обычно выходные пакеты этих решений содержат какие-то механизмы начальной загрузки, которые помогут вам добраться до нужного файла или модуля в потенциально огромном пакете.
Размытая грань между исполнителями и сборщиками может заключаться в том, что сборщики также могут выполнять сложные преобразования или транспиляции во время выполнения, поэтому они могут делать несколько вещей, которые могут делать участники задач. Фактически, между browserify и webpack существует, вероятно, около сотни преобразователей, которые вы можете использовать для изменения исходного кода. Для сравнения, сейчас на npm указано не менее 2000 плагинов gulp . Итак, вы можете видеть, что есть четкие (надеюсь ...;)) определения того, что лучше всего подходит для вашего приложения.
При этом вы можете увидеть сложный проект, на самом деле использующий как исполнители задач, так и сборщики пакетов одновременно или в тандеме. Например, в моем офисе мы используем gulp для запуска нашего проекта, а webpack фактически запускается из конкретной задачи gulp, которая создает исходные пакеты, необходимые для запуска нашего приложения в браузере. А поскольку наше приложение изоморфно , мы также связываем часть серверного кода.
По моему скромному мнению, вы можете захотеть познакомиться со всеми этими технологиями, потому что есть вероятность, что вы увидите (будете использовать) их все в ходе своей карьеры.