Monorepo
- Monorepo is a way or strategy of managing a large project that consists of many packages or modules in one repository
- You have one repository with bunch of packages/modules instead of system “one package = one repository”
- An example of the project that is monorepo - Babel
- If you open Babel on GitHub you will see a folder called packages that contains all packages of Babel project
- In not monorepo system each of these packages would be in a separate repository
- Pros:
- You can provide cross-changes in a several packages faster and easily
- It is possible to create a one pull/merge request with changes in a several packages
- Managing different versions of packages and dependencies
- Deploying all packages at the same time
- Using the same build system for many packages
- Cons:
- Most of the tools for managing monorepo are hard to implementing or they bring a lot of unnecessary abstractions