@sdgroup14

Можно ли как то ускорить Angular2+ ssr?

Всем привет. вообщем пишу на Angular 7. Прицепил Universal, все сборки настроены и работают. Для меня было конечно горе решать все конфликты когда делал продакшн под ssr... в проекте довольно много плагинов.... googlemap, swiper, paperjs, textmask, perfectscroll, tweenmax... ну вообщем их достаточно. Когда начал смотреть в нетворках за сколько мне отдается продакшн версия мой показытель был domContentLoaded 1.7s Load 2.2s. мне стало интересно, что будет если я вообще уберу все страницы и оставлю только главную и на ней swiper(раньше на этой странице был paper.js + 2 канваса)...
domContentLoaded 1.5s Load 1.9s.

структура папок dist

dist
/browser
/server
server.js

Размеры файлов значительно уменьшились допустим dist/server/main.js был 900кб ? а после удаления всего стал 200кб. Но результата это не дало, хотя залез в него я увидел (когда он весил 900кб) что там все все либы которые вообще есть в проекте :). Тут еще один вопрос возник, а можно в зависимости от роутинга запрашивать либу? то как то получается что есть lazyModules и подгружаются в зависимости от роута, но сами все библиотеки грузятся сразу...

Подскажите пожалуйста. От чего вообще зависит этот показатель и как я могу на него повлиять. Взял конечно чистую сборку Anular Universal Starter и показатель стал после 2рой перезагрузки domContentLoaded 0.4s
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaxKorz
так то получается что есть lazyModules и подгружаются в зависимости от роута, но сами все библиотеки грузятся сразу...
Если импортируете библиотеку в lazy module, то она и будет находится только в этом lazy module, и будет загружаться внесте с ним (точнее, бибилиотека и lazy module окажутся в одном файле)

Установите webpack-bundle-analyzer, запустите
ng build --stats-json && webpack-bundle-analyzer dist/stats.json
и смотрите что и где у вас оказалось. Может у вас все библиотеки в каждом модуле присутствуют по какой-то причине.

Я честно не имел опыта с Universal, может он так работает, что не зависимо от наличия lazy modules весь код попадает в один файл, но сомневаюсь.

Еще не помешает настроить gzip и кэширование на вашем сервере. У меня 750 килобайт спокойно жмутся до 240 килобайт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Toqomo Санкт-Петербург
До 190 000 руб.
Napoleon it Челябинск
от 100 000 руб.
18 янв. 2019, в 21:37
1500 руб./за проект
18 янв. 2019, в 19:30
150000 руб./за проект
18 янв. 2019, в 18:43
1000 руб./в час