Опишу как я делал эту сборку на Grunt.
Вся магия крутится вокруг плагина github.com/firstandthird/… (это развитие идеи github.com/sindresorhus/l…)
Главные 2 вещи, что он делает:
Выносит все таски в отдельные файлы, разгружает Gruntconfig
Заменяет загрузчик тасков на jit-grunt!
Невероятный прирост скорости даёт именно npmjs.com/package/jit-gr…, он сокращает время, необходимое Grunt, чтоб подгрузить все таски и плагины
Но кроме скорости важна читабельность и удобство поддержки. Grunt ругают за нечитабельный конфиг, load-grunt-config исправляет это.
Например так выглядит мой список задач: github.com/ideus-team/htm…
Сверху - задачи для сборки,
Снизу - отдельные задачи по Watch
Благодаря load-grunt-config все таски и настройки к ним выносятся в отдельную папку /grunt где каждая задача - отдельный файл.
В Gruntfile у вас должны остаться только переменные настроек путей к файлам/папкам исходных/скомпилированных css/js github.com/ideus-team/htm…