Если это настолько большой SPA, то я бы сделал прогрес бар при загрузке приложения, куда лучше чем дополнительный запрос на сервер при каждом изменении его состояния.
перестать беспокоиться о подключении скриптов в правильном порядке;
Об этом можно и так не беспокоиться, если вынести создание всех модулей в один файл, скажем bootstrap.js, и подключать его первым.
загружать javascript код асинхронно;
А зачем? в продакшен сборке вы все равно будете использовать сконкатеннированную и заминифицированную версию.
иметь возможность скомпилировать код в один минифицированный JS-файл;
и Grunt и Gulp это легко делают.
Зато из минусов у Вас теперь:
1. Необходомость заворочивать в define создание любой сущности ангуляра, которая и так создается в модуле ангуляра.
2. Дополнительный файл конфигурации RequireJS.
Возможно, но в моем случае я использовал одно и тоже свойство и для отоброжения данных и для показа лоадера, в случае когда свойство еще undefined. Таким образом получал бесконечный лоадер, когда вместо undefined был пустой массив.
Вот годные рассуждения на тему произвоительности AngularJS от одного из его авторов. Но в общем случае, все действительно зависит от того на сколько часто будут вызываться обработчики $watch и на сколько большим будет сравниваемый scope.
А во время разработки очень удобно хранить все в отдельный файлах, грубо говоря — один класс = один файл.
Само собой, и Вам ничего не мешает так же делать при помощи AngularJS.
Тем более загрузка файлов в с помощью RequireJS — на много удобнее, чем менеджить все нужные скрипты в head теге.
Вы явно забыли про конфиг для RequireJS, в не работы не намного меньше.
Так ведь нету никаких противоречий с модулями AngularJS.
Никто не говори про противоречия, всего лишь лишний код, в который нужно теперь обарачивать каждое объявление любой сущности AngularJS, которые и так принадлежат какому-либо модулю AngularJS.
А какой вообще смысл от использования RequireJS если у вас уже есть AngularJS? В нем уже реализованы модули, и при использовании AngularJS вы от них никуда не денетесь. Вот и получается лишняя обертка для каждого скрипта. А что касается асихронной загрузки, то когда дело дойдет до продакшена вы все равно будете исользовать RequireJS Optimizer чтобы получить один js файл.
Доволько исчерпывающе. Но все же, в абзаце про призму можно еще упомянуть и про то, почему белый свет разлагается на спектр. Т.е. про разные коэффициенты приломления у раз длин волн.
Об этом можно и так не беспокоиться, если вынести создание всех модулей в один файл, скажем bootstrap.js, и подключать его первым.
А зачем? в продакшен сборке вы все равно будете использовать сконкатеннированную и заминифицированную версию.
и Grunt и Gulp это легко делают.
Зато из минусов у Вас теперь:
1. Необходомость заворочивать в define создание любой сущности ангуляра, которая и так создается в модуле ангуляра.
2. Дополнительный файл конфигурации RequireJS.
false
значение.И подключать его первым?
Само собой, и Вам ничего не мешает так же делать при помощи AngularJS.
Вы явно забыли про конфиг для RequireJS, в не работы не намного меньше.
Никто не говори про противоречия, всего лишь лишний код, в который нужно теперь обарачивать каждое объявление любой сущности AngularJS, которые и так принадлежат какому-либо модулю AngularJS.
А может проще один раз разобраться? Он все таки специально для таких целей и сделан.