Resulted from the following discussion with @jits, we want to give pnpm a try.
I find pnpm smoother (gut feel), after many years of using yarn (and I've switched over to pnpm for all Node.js based projects now).
A few concrete reasons why this might be the case:
performance — because pnpm uses symlinks to point your dependencies to a single source of truth on disk, it's very fast.
better dependency isolation — pnpm doesn't flatten the dependencies in the node_modules folder, so (in theory) provides a safer isolation between conflicting versions of sub-dependencies. It will still report conflicting versions though (so you can take action). My experience has been smoother in these situations with pnpm than yarn, where the latter would decide for you which version of the sub-dependency should be installed.
Resulted from the following discussion with @jits, we want to give pnpm a try.
I find pnpm smoother (gut feel), after many years of using yarn (and I've switched over to pnpm for all Node.js based projects now).
A few concrete reasons why this might be the case:
node_modules
folder, so (in theory) provides a safer isolation between conflicting versions of sub-dependencies. It will still report conflicting versions though (so you can take action). My experience has been smoother in these situations with pnpm than yarn, where the latter would decide for you which version of the sub-dependency should be installed.npx yarn
would fetch and use) has kinda been deprecated / is unsupported (https://github.com/yarnpkg/yarn?tab=readme-ov-file#%E2%84%B9%EF%B8%8F-important-note). It's not clear to me how long of a future it has. And the compatibility and migration story between v1 and subsequent versions isn't particularly smooth (https://yarnpkg.com/migration/guide). I've had annoying experiences migrating from Yarn v1 to a later version.I think I had a similar experience to you a few years back, but now it seems pnpm has matured quite a bit.
(https://refine.dev/blog/pnpm-vs-npm-and-yarn/ is a more detailed comparison, if you want to dig further)
Originally posted by @jits in https://github.com/angular-architects/ngrx-toolkit/issues/72#issuecomment-2250046837