У меня есть репозиторий SSR (inferno-react как lib), связанный с использованием webpack
. Он имеет 2 файла маршрута, 1 для сервера и 1 для клиента, точно такие же, но фрагментация происходит на стороне клиента с использованием require.ensure. Один из маршрутов выглядит так:
<Route path="/home" getComponent={(props, cb) => {
require.ensure([], require => cb(null,
require('../views/containers/Home').default), 'home');
}}/>
Это означает, что когда браузер будет анализировать .html
, а bundle.js
будет загружен в браузер, веб-пакет затем вставит тег .js
script компонента фрагментированного маршрута в html, и затем он будет загружен. Но это немного замедляет его, так как .js
этого маршрута загружается только после загрузки bundle.js
... Итак, я вручную добавляю тег скрипта с сервера для любого запрошенного фрагмента маршрута динамически с помощью webpack-manifest-plugin
. Но теперь для каждого запрошенного маршрута у меня есть двойные теги script в файле .html
для этого фрагментированного компонента. Один из-за ручного добавления на сервер и один, когда мы создаем чанк в веб-пакете, используя require.ensure
.
Все работает, но прекрасно 2 тега сценария! :/
Есть ли способ избежать этого или как еще я могу справиться с этим, сохраняя фрагментацию на стороне клиента.