You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm currently considering transitioning my existing Angular projects into an Nx monorepo architecture. The primary motivation for this shift is the anticipated ease of sharing code between shell applications and utilizing shared libraries within the monorepo framework.
I have a couple of questions regarding the feasibility and implementation of this architecture:
Multiple Shell Applications in a Monorepo: In my setup, I have multiple micro frontends that need to be integrated into a shell application. I understand that integrating one micro frontend is feasible, but is it possible to incorporate more than one shell application within a single monorepo?
Deployment and External Integration of Micro Frontends: The micro frontends in my monorepo are intended to be deployed independently. I plan to use module federation to link these micro frontends to the shell application. However, there is a requirement for these micro frontends to also be integrable into projects outside the monorepo. For instance, if in the future one of these micro frontend projects is sold separately, it should be able to function independently of the monorepo. Previously, I managed a similar setup using a multi-repo architecture with Module Federation, which worked well. Is it possible to achieve the same level of flexibility with a monorepo setup?
Any insights or experiences with similar setups would be greatly appreciated.
Yes you can have bi-directional shells both with a monorepo or multi-repo architecture, you can see this example
In my team we have a monorepo with Module Federation for 2 years, some other teams are consuming our remote apps without problems and we are also consuming theirs remote apps as-well.
For the deployments we use Lerna which will run the script "postpublish" of each packages so you can manage the deployment of each packages independently or globally on a github action if you prefer. The main advantage of a monorepo against multi-repo is to be able to resolve the types easier as you can generate .d.ts and access it on the monorepo or use typescript's project references.
Another team have a multi-repo architecture with module federation and they are struggling way more than us.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello Community,
I'm currently considering transitioning my existing Angular projects into an Nx monorepo architecture. The primary motivation for this shift is the anticipated ease of sharing code between shell applications and utilizing shared libraries within the monorepo framework.
I have a couple of questions regarding the feasibility and implementation of this architecture:
Multiple Shell Applications in a Monorepo: In my setup, I have multiple micro frontends that need to be integrated into a shell application. I understand that integrating one micro frontend is feasible, but is it possible to incorporate more than one shell application within a single monorepo?
Deployment and External Integration of Micro Frontends: The micro frontends in my monorepo are intended to be deployed independently. I plan to use module federation to link these micro frontends to the shell application. However, there is a requirement for these micro frontends to also be integrable into projects outside the monorepo. For instance, if in the future one of these micro frontend projects is sold separately, it should be able to function independently of the monorepo. Previously, I managed a similar setup using a multi-repo architecture with Module Federation, which worked well. Is it possible to achieve the same level of flexibility with a monorepo setup?
Any insights or experiences with similar setups would be greatly appreciated.
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions