Comments 15
Все нужные js собираются grunt'ом в общий js. Тащить зоопарк мелких файлов клиенту не было необходимости.
поддержу
только вместо grunt использую gulp
только вместо grunt использую gulp
в продакшене да, но при разработке удобнее пользоваться каким нибудь загрузчиком модулей. так же при сборке решается проблема ресолва зависимосткй.
лично я последний месяц использую es6 модули.
лично я последний месяц использую es6 модули.
А когда JS-кода под ~100Кб или больше? Тут целесообразнее подключать только то, что нужно на конкретной странице, и при этом иметь возможность отдавать HTML быстрее.
100кб это мало для SPA, а какой-то прелоадер можно отображать сразу по domready и запускать boostrap приложения вручную по завершению загрузки. Более того, озвученный выше метод не решает основной проблемы жирных приложений — ленивая подгрузка модулей. То есть приложению всеравно нужно загрузить все модули. В Angular2 эту проблему собираются решить использованием ES6 модулей, но думаю никто не мешает заменить реализацию $inject на свою, с ленивой подгрузкой на промисах, возможно с каким-то ранним механизмом для префетча. Но поскольку модуль $inject не «поправить» без патчинга самого angular, красивой реализации нет (а может и есть, ткните носом если так).
В целом как я понял в большинстве случаев приложения на angular либо весят мало, либо никого не парит такие штуки (все же очень небольшой процент разработчиков пишут жирные приложения на angularjs не под гибриды к примеру а именно под web).
В целом как я понял в большинстве случаев приложения на angular либо весят мало, либо никого не парит такие штуки (все же очень небольшой процент разработчиков пишут жирные приложения на angularjs не под гибриды к примеру а именно под web).
можно реализовать ленивую подгрузку с помощью resolve в роутере, но у меня не получилось красиво описывать зависимости и приходилось на каждый роут писать руками все что нужно ему и всем его зависимостям.
ресолвы в раутере отрабатывают после этапа конфигурации, так что добавить сервисы или директивы уже не выйдет.
я не вижу смысла грузить отдельные контроллеры. Они не должны быть сильно жирными по хорошему. Имеет смысл догружать скоупом модули отдельные. Но в целом конечно же от задачи зависит.
Ну и да, это кастыль а не красивое решение.
Ну и да, это кастыль а не красивое решение.
я уже точно не помню как я делал, но возможно добавить директивы и сервисы на лету
Совершенно непонятен профит от такого уродования кода (лишний код + лишняя вложеность). В продакшене это бессмысленно, так как пока все файлы не загрузятся, приложение не стартанет.
В маленьком проекте достаточно соблюдать гайд по структуре, чтобы настроить сборщик (grunt, gulp, etc) для правильной сборки зависимостей. В большом проекте к этому стоит добавить жесткий стайлгайд касаемо описания моделуей (можно вытягивать зависимости из кода во время сборки).
Интереснее было бы посмотреть на подгрузку зависимостей на лету по требованию. Пока лучшее, что я нашел –ocLazyLoad. И он далеко не идеален.
Кто нибудь занимался настройкой подгрузки кода во время исполнения?
В маленьком проекте достаточно соблюдать гайд по структуре, чтобы настроить сборщик (grunt, gulp, etc) для правильной сборки зависимостей. В большом проекте к этому стоит добавить жесткий стайлгайд касаемо описания моделуей (можно вытягивать зависимости из кода во время сборки).
Интереснее было бы посмотреть на подгрузку зависимостей на лету по требованию. Пока лучшее, что я нашел –ocLazyLoad. И он далеко не идеален.
Кто нибудь занимался настройкой подгрузки кода во время исполнения?
Sign up to leave a comment.
Использование RequireJS в приложениях AngularJS