What is Nx?
Nx is a Monorepo pattern and built by Nrwl. Is available through the Angular CLI. All Angular apps will live within the singular Angular Application Workspace.
Why?
Large Enterprise Apps, consistency, community standardization and patterns. Consider to be a robust why for developing applications.
Setup
Run the following command to create a new workspace: https://nx.dev/getting-started/nx-setup. Follow the instructions and select tech stack through prompts.
Verdict
It sucks and don’t use it. Why? We found it a mistake and reverted away from it. It doesn’t provide any benefits and only creates complexity thanks odd opinionated design pattern. Making a layer of magic meat and dependency on Nx as a critical dependency you can’t revert out of. Because of Nx we also found issues with engineer comprehending its pattern and also found CICD deployment issues.
A mono-repo should not have such a requirement on the apps design and should just support the apps environment. Nx impacts every step of source code and structure which is a joke. A good mono-repo should allow applications (React, Angular, Vue, etc..) to be develop natively based on the Framework or library design.
We ended up developing our own mono-repo system that allows application with any library or framework with next to zero enforced application design to your app in the mon-repo environment. Our design feels like your not in a mono-repo but provides all benefits.