Смысл систем сборок Gulp, Grunt и т.д?
Смысл таск ранеров в том, что бы упростить и автоматизировать рутиные задачи. Сборку можно сделать да хоть на bash скриптах. Grunt/Gulp - просто заточены под это и просты в изучении.
В команде намного проще использовать подобные средства, чем выполнять все задачи поднятия проекта в ручную.
Например при сборке фронта вам требуется:
1. Проверить исходники через eslint
2. Минифицировать js код, и для dev сборки притянуть сорс мапы
3. Собрать css из кучки взаимосвязанных less файлов и тоже минимизировать.
4. Шаблоны собрать из jade например, или любого другого шаблонизатора
5. Прогнать unit тесты
Безусловно, можно все эти шаги выполнить полностью в ручную, однако на много проще один раз этот процесс описать в инструкции для сборки и вызывать что-то в стиле gulp build
В том-то и дело, что разделяется prod и dev код. Когда проект собирается сборщиком, в собранные файлы (min) не лезут, вся работа происходит в dev папке.
Это всего лишь экосистема вокруг вашего рабочего процесса и как вы ее построите решать вам.