Work is finally switching our mono-repos to pnpm. In progress, code-freeze end of the week to pull it off. We all expect vastly improved quality of life.
Had been using lerna, which we have to re-bootstrap way too often & which takes way to long to do so.
I switched all my work monorepo projects to pnpm a few months ago, and it has been a dramatic improvement. Many thanks to the author(s) of pnpm for their hard work!
"Lerna is dead, longive Lerna"[1] mainly talks about Nx, the DAG-based parallel task runner that the new maintainers already made/love, and how it will maybe/probably help Lerna. The post explicitly mentions Nx is neutral & can work with a variety of monorepo tools (also mentioning pnpm, yarn, in additiom to npm).
Lerna is old as heck, & far predates npm workspaces. Im not super aware what if any npm workspaces support it has or had. To be honest we were so far behind upgrading/maintaining stuff when I joined that we only recently have a npm version with workspaces (released in v7, October 2020) so Im not super well versed.
The new lerna versions definitely configure package.json#workspaces, which seemingly all js-world monorepo tools use.
I've heard npm is getting much better, but just going through our many packages & installing them & doing the necessary mono-repo npm link has been absurdly slow with our old-ish pre-workspace npm; lerna has been so saddening. Nx can help here, and maybe npm indeed is much more competitive now. I still find it frustrating that enormously simple stuff like "how do I update a dep in a package" has no answer[2] (and requires rebuilding that painful slow re-install everything in every route I've tried), but maybe the monorepo tools now can do this & it's no longer as much a lerna question?
Just double checked. Unless you specifically turn it off (reverting to Lerna's old behavior), it does leans on npm/pnpm/yarn's workspaces. Npm is indeed getting better at this stuff too. I did some tests on our main monorepo (~8 services linked together), for us npm was marginally slower than pnpm and pretty much equivalent to yarn.
It also does optionally lean on Nx for task execution. So at that point, lerna itself isn't doing much outside linking internal dependencies.
Had been using lerna, which we have to re-bootstrap way too often & which takes way to long to do so.