Использовать сборку и автоматизацию — однозначно стоит.
require.js имеет свой собственный сборщик модулй и оптимизатор — r.js
Достаточно много с ним работал из опыта могу сказать, что он хорош, но мне не подошел — муторно поддерживать проект на нем:
— это AMD, а значит нужно писать обертку define, колдовать если заходится использовать модуль в node.js… (можно не писать обертку, но придется опять колдовать)
— require() — God Object и возвращает всевозможные тип ресурсов всевозможными путями. Долго вникать что к чему если код чужой
— плагинная система у него странная для восприятия «с нуля»
— результат сборки сложно окинуть взглядом «все как-то само»
В общем, я устал от AMD и RequireJS, смотрел в сторону всевозможных подобных проектов тк мне не хотелось писать еще один велосипед. В итоге, мне
пришлось написать инструмент своей мечты — LMD.
Исходил я из слудующих соображений:
* Сегодня все собирается. Даже dev
— зачем писать обертку и вобще писать что-то лишнее если за тебя это может сделать робот?!
* Читаемость кода очень важна
— Нужно исключить неявные конструкции
— Я как архитектор моего проекта хочу знать, что в нем будет «валяться»
* Сборок бывает много
— dev, production, dev-ru, test-en_US
* Нужен контроль результата сборки
— Проверка целостности
— Подробная информация о сборке
— Аналитика
Сегодня
LMD умеет все то, что умеют другие сборщики, и имеет ряд преимуществ: CommonJS/Modules, честная и тотальная изоляция модулей, шикарная аналитика сборок как статическая так и динамическая, CLI с автокомплитом, GUI. LMD особенно хорош если у вас много сборок — много языков, много окружений.
Если вы используете grunt, то у LMD есть для него плагин —
grunt-lmd.
Буквально на длях я написал
целую кучу примеров к всевозможным плагинам и фичам LMD. Посмотрите их. Если будут вопросы задавайте тут или в ЛС.