Это распространенная проблема, с которой сталкиваются при работе с микроинтерфейсами, хотя не существует однозначного лучшего решения.
Действительно, вам нужно разделить исходный код на несколько пакетов NPM с их собственными package. json, чтобы разные приложения могли иметь разные версии зависимостей (React, XYZ lib). Затем вы можете скомпилировать каждое приложение в пакет и запустить эти пакеты в Single-Spa. Но есть еще проблемы. Ваш общий размер сайта будет расти, так как вы не можете полностью разделить зависимости, которые одинаковы. Вы также по-прежнему не можете запускать несколько приложений React в одном представлении одновременно, если они не используют одну и ту же версию React.
Существуют также инструменты, помогающие с этим, например, Lerna, но вам может не понадобиться эта сложность еще. Есть и другие способы создания микро-интерфейсов, таких как микросервисы, которые возвращают серверную часть, обработанную HTML, поэтому интеграция не должна происходить во время сборки, как с Single-Spa, а во время выполнения. Это, как и все остальное, имеет свои плюсы и минусы.
Так что вы можете подумать, стоит ли запускать несколько разных версий React? Возможно, и вашим пользователям, и вашим разработчикам лучше попробовать обновить их до последних версий в старых приложениях. Поскольку они являются микро-интерфейсами, они должны быть меньше, что означает, что обновление должно быть проще. Это также обеспечивает меньший объем загружаемого пакета и не требует дополнительной серверной инфраструктуры. Но вам нужно сотрудничать между всеми приложениями для одновременного обновления. У каждого подхода есть своя задача.