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

Technologies and tools

Share:

About

My name is Max, also known as @mxkvl.

I am a software developer, currently working mostly with TypeScript, React and Node ecosystems.

I write a blog about topics that interest me most: programming languages in general, TypeScript, testing, writing and other great stuff.

Join the Mailing List