nodejs / nodejs/corepack

Corepack and Yarn isolation in an nvm-managed environment

Open
#484 1 comment 14 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
3.8k
Forks
279
Avg merge
1h 47m
Merged PRs (30d)
2

Description

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?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files, tests, or entry points are named. Reproduce the reported setup with Node.js 16 and 20 under nvm, then inspect how Corepack activates package managers across versions; the work is done when Yarn versions can be activated independently for each Node.js installation and the behavior is covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.