nodejs / corepack

Zero-runtime-dependency package acting as bridge between Node projects and their package managers
MIT License
2.31k stars 145 forks source link

Corepack and Yarn isolation in an nvm-managed environment #484

Open marlondecol opened 1 month ago

marlondecol commented 1 month ago

A few hours ago I opened an issue in the nvm project repository to discuss a way to install package managers — in my case, Yarn — through Corepack separately for each version of Node.js. As I was told there, this should be discussed here, so I paraphrase my issue below.

My system has only two versions of Node.js installed and managed by nvm: the default is 20, which I use for almost all of my projects; the other one is 16. There is no other version of Node.js on this system, regardless of how it is installed. Both only have Corepack and NPM installed globally, each at the latest supported version.

The issue I come to discuss is that Corepack does not activate Yarn in isolation, i.e., every time a certain version of Yarn is activated in one of the Node.js versions, it is also activated in the other version. Therefore, I cannot, for example, use the latest version of Yarn on Node.js 20, as it is not compatible with 16.

Is there a way to isolate Yarn? Otherwise, wouldn't it make sense to implement it?