Grunt – это система организации рутинных задач, которые делает веб разработчик. Примеры таких задач – минификация кода, компиляция, запуск unit-тестов, линтинг.
Задачи, которые необходимо автоматизировать прописывается командами в специально файле Gruntfile.js. После чего с помощью команды grunt <имя задачи> можно выполнить любую задачу (последовательность команд). Часто используемую задачу (например сборку всех js и css файлов) можно сделать задачей по-умолчанию и запускать просто командой grunt.
Существует множество плагинов для grunt, которые расширяют список задач. Например, есть плагины для развертывания приложения на удаленном сервере. Grunt работает на Node.js, ставится как npm пакет. Плагины к нему устанавливаются так же.
Чаще всего, пожалуй, grunt используют для сборки веб-приложения. Куда входит, по меньшей мере минификация js и css, компиляция less или scss (sass), а также склейка файлов. В этом случае будет полезен плагин grunt watch, который отслеживает изменения в нужных файлах и выполняет связанные с этим задачи. Например, при изменении какого-либо файла scss плагин автоматически пересобирет css файлы, которые зависят от данного. Это экономит время при задачах сборки, так как дает возможность не проходиться по файлам, которые не изменялись.
В последнее время, правда, grunt стал терять популярность, так как у него появились серьезные конкуренты.