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:
- Codebase looks more intimidating.
- Repo is bigger in size.
- Can't
npm install
modules directly from GitHub - ???