Кто-то может поделиться опытом использования Grunt в больших проектах?
Проект на .Net с огромным кол-вом уникальных страниц, на каждой подключается по 5-50 js-ов.
Планируется собирать для каждой страницы свой js-файл из всех скриптов, которые используются на ней.
Задача усложняется наличием большого количества зависимостей. Например, нужно подключить какой-то модуль, но для него нужны некоторые библиотеки или jquery-плагины. И отслеживать это в ручную не представляется возможным.
Другой вопрос — как организоваться сборку проекта в девелоперской среде и на продакшене?
В продакшене нужно склеивать и минифицировать все файлы, а в при разработке нужно подключать их все по отдельности. Но хранить всю информацию о том какие скрипты нужны и с какими зависимостями хочется в виде конфигов в json-файлах.
Где можно почитать о best practice? Поиск выдает в основном совсем простые туториалы для новичков.
Grunt это task runner с большим количеством уже готвых тасков в виде плагинов. По сути то что вы опясали это по сути Ваш кастомный таск, который Вам нужно реализовать на JS. Т.к. grunt позволяет выполнять цепочки тасков то ваш таск можно разбит на несколько мелких тасков. Например:
— найти в темплейте подключенные jsфайлы и составить их список
— склеить
— минифицироовать
— каким либо образом подключить собраный файл в темплейт.
Для части тасков уже существуют плагины, часть вы можете описать в grunt файле.
ps На Вашем месте я бы сначала пересмотрел принципы подключения js у вас на страницах, потому что генерировать кучу разных файлов для разных страниц не оптимально.
Использование require.js не исключает использование гранта. Всеравно нужно будет запускать тесты, минифицировать графику (советую pngquant для png), собирать less или sass…