Lesson 43 of 56 · Typescript
Monorepos – Lerna, Yarn Workspaces, and Nx
Duration: 20 minutes
Yarn Workspaces (simplest)
// package.json (root)
{
"private": true,
"workspaces": ["packages/*"]
}
Each package gets its own package.json. Dependencies are hoisted.
Lerna (classic)
npm i -g lerna
lerna init
lerna.json
{ "packages": ["packages/*"], "version": "independent" }
Run lerna bootstrap to link local packages.
Nx (advanced, with caching)
npx create-nx-workspace@latest myorg
Choose npm + TypeScript. Nx provides powerful generators (nx generate @nrwl/react:component) and affected commands.
Publishing a package from a monorepo
cd packages/utils
npm version patch
npm publish --access public