Моя история начинается с того, что есть миллионы различных виджетов, плагинов и расширений для фронтенда, проекты требуют красивые и продуманные интерфейсы: кастомные элементы форм, скроллеры, ползунки и еще много чего. Такого добра валом, и 1000 звезд на гитхабе далеко не показатель крутого плагина, так как там может быть очень много багов с меткой типа "Нужна помощь".
Как-то на одном проекте у меня ушло несколько месяцев только на то, чтобы перебрать более 200 различных плагинов и найти те, которые действительно работают везде, во всех извращениях и легко настраиваются под различные нужды.
Поэтому я решил сделать такую себе заготовку из набора качественных виджетов. Имею такую аготовку можно было бы без труда начинать проект и компилить только нужный список.
Я хочу воспользоваться следующими штуковинами:
npm и bower в качестве пакетных менеджеров
grunt для сборки
less
ну и собственно различные плагины и виджеты.
Структура получилась следующая:bower_components/
build/
node_modules/
src/
bower.json
Gruntfile.js
package.json
src - тут я планирую вести разработку всего своего творения. Тоесть мне нужно правильно настроить Gruntfile.js, чтобы по команде собиралось все это дело. И так уже вышло, что мне нужно 2 версии сборки.
build - а вот сюда уже должен попадать итог всего. Тоесть если в
src находится все все все, то в
build попадет только то, что нужно для проекта (например 5 определенных плагинов из 10 собранных в 1 файл).
Тоесть в теории хочу прийти к вот такому:src/ - свалка для разработки, которая демонстрирует все все все .
build/ - содержит widgets.js, widget.css и jquery.js, где widgets.js и widget.css это сборка всех плагинов, которые нас интересуют в нашем новом проекте.
Возникает вопрос:
Все зависимости, которые я указал, попадают в
bower_components, теперь мне нужно перетащить в папку
src необходимые файлы. А затем как-то используя другие команды собрать только нужные файлы в папку
build. Тоесть можно ли как-то в grunt реализовать что то вроде:
grunt build dev и
grunt build prod ?
Или возможно есть другие способы?