Measured switching from @yarnpkg v1 to @npmjs v7 and @pnpmjs v5.10 in our GitLab pipelines. Not very scientific, but pnpm seems to be the winner performance wise.
pnpm v5.10 is out!
Now you can use a field in the root project's package.json to override any version ranges in your dependencies.
Prior 5.10, this was only possible to do using hooks via pnpmfile.js