Back to Babel

Why is Babel a monorepo?

doc/design/monorepo.md

7.29.52.4 KB
Original Source

Why is Babel a monorepo?

[!NOTE] We don't use lerna to manage packages inside the monorepo, but yarn workspaces with an additional custom plugin.

Juggling a multimodule project over multiple repos is like trying to teach a newborn baby how to ride a bike.

Babel follows a monorepo approach, all officially maintained modules are in the same repo.

This is quite taboo but let's look at the pros and cons:

Pros:

  • Single lint, build, test and release process.
  • Easy to coordinate changes across modules.
  • Single place to report issues.
  • Easier to setup a development environment.
  • Tests across modules are run together which finds bugs that touch multiple modules more easily.

Cons:

This is dumb! Nobody in open source does this!

React, Meteor, and Ember, among others, do this.

Previous discussion