Объединение модулей против загрузки - обслуживание только того, что нужно клиенту

Недавно мы перешли на использование TypeScript в нашем проекте Angular 1.x и используем Webpack для объединения наших модулей, что позволяет нам создавать объединенную версию наших источников для включения в нашу страницу index.html.

Когда дело доходит до модульности нашего приложения angular, мы старались следовать лучшим практикам, следуя руководству по стилю Джона Папы и т. Д.

В последнее время я размышлял о том, что все наши модули функций angular объединены в окончательный файл, который создает для нас webpack.

Пользователи, которые войдут в приложение, не обязательно будут иметь доступ ко всем предлагаемым функциям на основе настроек разрешений их учетной записи (которые мы читаем при входе в систему). Если пользователь может получить доступ, скажем, к 2 из 5 функций, то в его браузере загруженный исходный код по-прежнему будет включать в себя весь набор разработанных функций (да, мы делаем наш исходный код безупречным).

Я видел упомянутые загрузчики модулей и задавался вопросом, могут ли они использоваться только для обслуживания того, что нужно клиенту при навигации по приложению?

Таким образом, при загрузке приложения они получат только основные модули \ функции, которые необходимы как минимум, например доставить их на домашнюю страницу с помощью навигации и т. д.

И затем, когда они щелкают по функциональным областям, к которым у них есть доступ, могут ли только эти связанные источники модулей быть извлечены и, возможно, кэшированы для повторного посещения позже?

Я понимаю, что в конечном итоге это будет больше сетевых запросов, но начальная загрузка приложения при первом посещении будет намного быстрее?

Я новичок в сборке и загрузке модулей и думаю, что у меня есть базовое представление о различиях. Какие подходы использовали другие, когда дело доходит до такого рода вещей?

Спасибо


person mindparse    schedule 16.06.2017    source источник
comment
Вы можете взглянуть на ocLazyLoad.   -  person Nikos Paraskevopoulos    schedule 16.06.2017


Ответы (1)


Я думаю, вы не найдете лучшего ответа. Все, что вы услышите: это зависит от обстоятельств.

Например:

  • Если у вас есть приложение, полное модулей, которое загружается динамически на лету, и время начальной загрузки имеет решающее значение - используйте systemjs / jspm.
  • Если скорость отклика абсолютно критична - выбирайте webpack.

Есть несколько хороших сравнений / обсуждений по этому вопросу: здесь, здесь или здесь и многие другие, но суть в том, что вы должны оценивать и принимать обоснованные решения самостоятельно.

person Amid    schedule 16.06.2017