Можно ли RequireJs использовать для динамического подключения модулей?
Добрый день. В инете материала не нашел, В общем пишу SPA. и возник такой вопрос.
Есть ядро и есть модули, их может быть больше 200. Сборка в один файл отпадает, для разных пользователей будет доступно разное количество модулей.
Я например это вижу так:
1.Изначально require подключает глобальные скрипты, библиотеки.
2. Дальше рисуем меню для выбора модулей.
3. При переходе в модуль, require подтягивает все необходимые зависимости, и загружается модуль.
4. При переходе на другой модуль, сливаем все зависимости с предыдущего модуля, и загружаем новые.
Насколько такой подход плох\хорош, и есть ли уже подобная реализация? Если ли альтернативные варианты, кроме использования сборщиков(gulp,grunt)?
Причина есть, я сам активно их использую, но я же написал, что в данном случае этот вариант отпадает. т.к. будут пользователи с разными правами доступа, зачем грузить всю пачку, когда пользователю будет всего доступно 10-20 модулей. Ну и собственно с таким условием мне поставили задачу.
Дмитрий Горбач: вы путаете таск-раннеры и сборщики:) systemjs-builder, например — это сборщик, его можно использовать отдельно, с grunt или с gulp. grunt и gulp сами по себе ничего не сообирают же. Так или иначе в большом проекте без какой-то организации не обойтись, помимо скриптов еще надо собирать стили, оптимизировать картинки, запустить тесты и т.д.
Вебпак может подключать файлы асинхронно, см. https://github.com/gaearon/promise-loader и/или https://github.com/NekR/async-module-loader
Плюс в том, что вебпак не будет засорять глобальную область видимости, т.е. даже если импортировать jquery, то переменная $ в window не создастся, что удобно. Так что не будет проблем с выгрузкой модулей, просто импортируй список нужных модулей через асинхронные загрузчики.