I'd recommend pnpm over npm for monorepos. Forcing you to be explicit about each package's dependencies is good.
I found npm's workspace features lacking in comparison and sparsely documented. It was also hard to find advice on the internet. I got the sense nobody was using npm workspaces for anything other than beginner articles.
In the context of what we're talking about here, using the default package manger to install a different package manger as a dependency has never quite sat right with me.
And npm workspaces is certainly "lacking features" compared to NX, but in terms of making `npm link` for local packages easier and running scripts across packages it does fine.