Angularjs: ocLazyLoad против Requirejs
Я работаю над большим англурским проектом и, очевидно, нам нужен способ ленивой загрузки наших скриптов.
Я работал с require.js раньше, и это довольно хорошо, но проблема в том, что после того, как мы объединили и свернули наши файлы, мы получили 1.5M js-файл.
Так что я только что столкнулся с OcLazyload, и это выглядит многообещающе, но я видел много примеров в Интернете, которые используют и require, и ocLazyLoad, я немного смущен тем, почему вы захотите использовать оба. Разве они оба не делают одно и то же?
2 ответа
Вам нужны и ocLazyLoad, и RequireJS, потому что теперь вы имеете дело с двумя отдельными концепциями модулей - вашими модулями javascript и угловыми внутренними модулями.
После начальной загрузки angularjs больше не позволяет регистрировать новые модули и компоненты, такие как директивы и контроллеры (по крайней мере, не используя стандартный способ).
RequireJS загружает только файлы JavaScript, но не регистрирует новые угловые модули и компоненты в этом новом коде
OcLazyLoad позволяет загружать дополнительные файлы с помощью стороннего загрузчика модулей, например RequireJS, и, что более важно, он регистрирует новые модули и компоненты в лениво загруженном коде.
Итак, вы можете лениво загружать код, используя только RequireJS, но вы не можете загружать угловые модули и компоненты только с помощью RequireJS. Существует необходимость в дополнительной работе, например, в исполнении ocLazyLoad.
Вы можете использовать RequireJS с ocLazyLoad, но я не рекомендую его, это просто возможно, потому что люди просили меня сделать это, и его было легко интегрировать. Вам не нужен RequireJS, потому что ocLazyLoad включает в себя собственные загрузчики для файлов js / css / templates и может загружать любые типы файлов, а не только угловые модули.
Если вы хотите лениво загрузить модули Angular, вам потребуется библиотека, чтобы зарегистрировать их в Angular (или подождите, пока Angular 1.5 позволит вам это сделать).
Итог: вы можете использовать RequireJS с ocLazyLoad или просто ocLazyLoad (рекомендуется), но вы не можете использовать только RequireJS