Огромный размер фрагмента замедляет загрузку веб-сайта

#javascript #reactjs #web #webpack

#javascript #reactjs #веб #webpack

Вопрос:

У меня возникли некоторые проблемы со скоростью загрузки моего проекта на React. Я тестирую его в Google PageSpeed и выглядит очень печально.

Рейтинг скорости страницы в Google

введите описание изображения здесь

Основная проблема, на мой взгляд, заключается в размере chunk.js файла.

Размер файла Chink

введите описание изображения здесь

Я пытался использовать React Lazy, чтобы увеличить скорость загрузки, но значение было очень низким. Может быть, кто-нибудь может помочь мне это исправить. Я использую React (без Redux) для этого проекта и несколько библиотек, самые большие из них — Antd, Stripe и Google Analytics. Серверная часть работает на Node / Express Psql, хост: Дженкинс.

Ответ №1:

возможно, вы могли бы более подробно рассказать, почему ваш пакет такой большой.

  1. Вы используете пользовательскую конфигурацию webpack или CRA?
  2. Вы измеряете производительность производственной сборки?
  3. Вы добавляете изображения в свой JS? Это может увеличить объем вашего пакета.

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

Что вы можете сделать для улучшения, так это разделить ненужные пакеты, которые могут загружаться с задержкой либо при посещении определенной страницы, либо при взаимодействии. Вам не нужен GA при начальной загрузке страницы. Я бы сказал то же самое для Stripe, только на странице оформления заказа.

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

https://webpack.js.org/guides/code-splitting/

Также взгляните на эту статью: https://webpack.js.org/guides/lazy-loading /