image

JavaScript monorepo managers

Managing, building, and publishing multiple packages in a JavaScript monorepo have never been easier

Splitting up large codebases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories gets complicated really fast.

Projects like Babel, React, Angular, Ember, Meteor, Jest, and many others develop all of their packages within a single repository.


Lerna

image

lerna.js.org

Lerna is a tool that optimizes the workflow around managing multi-package repositories with git and npm.

Rush

image

rushjs.io

Rush makes life easier for JavaScript developers who build and publish many packages from a common Git repo, ready for large repos, designed for large teams, no phantom dependencies, etc.

Yarn workspaces

image

classic.yarnpkg.com

Workspaces are a new way to set up your package architecture, allows you to setup multiple packages in such a way that you only need to run yarn install once to install all of them in a single pass.

Nx

image

nx.dev

Nx is a set of extensible dev tools for monorepos, has first-class support for many frontend and backend technologies.