Обновить
7
0

Пользователь

Отправить сообщение

Привет, а пробовали ли вы стор, например редакс, прокидывать в дочерние модули?

Или контексты?

Пробовал, вроде неплохо работает

Как единственный источник истины - норм подход

Ну тут проблема не микрофронтами, это то же самое, если один кусок одного приложения требует ресета, а в другой кусок этого же приложения - нет

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

Данную проблему можно решить при помощи Module Federation. Два проекта разворачиваются на двух разных серверах и с помощью плагина moduleFederation в хостовом приложении добавляются пути до файлов remoteEntry для разных приложений

А можете подробнее объяснить насчет проблемы с метриками?

MF просто помогает проще все контролировать и управлять этим

requirejs не все может. Если нужна поддержка es6 или разные форматы модулей в одном проекте, то es6-модули и systemjs соответственно

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

Однако судя по комментам, стоило привести сравнение, возможно сделаю это в отдельной статье

Не совсем так, сборка чанков осуществляется, когда мы кладем наше приложение на файловую систему сервера. А с помощью файлика remoteEntry мы уже забираем нужные нам чанки.

И мы сами можем рулить в какой момент какой модуль брать

Мой косяк, что не описал подробно механизм в статье. Либо здесь же исправлю, либо сделаю отдельную статью, так как и так эта подучилась большой, хотя я не супер глубоко уходил

Вот у нашей команды и стояла цель: разбить большое приложение на модули. И мы успешно перешли на MF. Тем более module federation есть не только в вебпак, энтузиасты для роллапа его сделали

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

Обновлять одновременно не надо. Обновил дочернее, хвостовое это сразу подтянуло и ничего не сломалось.

Все это можно сделать и без MF, конечно, но MF предоставляет удобные инструменты, которые позволяют не думать о том, как развернуть, как управлять либами и так далее

Нуу, считай уже это не микрофронт) С таким подходом не удобно работать с lazy loading, библиотеки придется импортить в каждый конкретный модуль, а с помощью MF их можно передать дочернему приложению, плюс версионирование вроде как нельзя автоматическое настроить: когда залил новую версию модуля, нужно в использующем приложении либо руками поменять, либо как-то скриптом дернуть

Имеешь в виду без использования module federation? А как подключать модули друг к другу тогда?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность