Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

`corepack use` in monorepo targets root not project package.json

Offen
#607 7 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
node.js, typescript
Bereich
cli, tooling

Rechercherichtung

Beginne bei der Implementierung des Befehls corepack use und reproduziere das Verhalten mit den im Issue genannten Befehlen aus einem verschachtelten Projektverzeichnis. Verfolge, wie package.json-Dateien gefunden werden und die Datei zum Schreiben und für die Installation ausgewählt wird. Als erledigt gilt, dass die package.json des verschachtelten Projekts erstellt oder aktualisiert wird, ohne die package.json im Repository-Root zu ändern, wobei die Reproduktion das Ergebnis bestätigt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Current behavior

In a monorepo if corepack use is executed in a project directory, which is a sub-directory of a monorepo root directory containing an existing package.json, it does not create or update the package.json in the project directory. Instead it makes changes to the package.json in the root of the monorepo.

The monorepo is not a workspace. Each project is separate.

Expected behavior

If corepack use is executed in a monorepo project directory, it should operate on or create a package.json in that directory not in the root directory of the monorepo.

The corepack README does not discuss how corepack use is supposed to behave in a hierarchy of directories containing their own package.json files. It says simply:

When run, this command will retrieve the latest release matching the provided descriptor, assign it to the project's package.json file, and automatically perform an install.

The Node.js documentation for corepack Configuring a package says:

The Corepack proxies will find the closest package.json file in your current directory hierarchy to extract its "packageManager" property.

I would understand this to mean that if there is a package.json in the current working directory, then corepack use should act on this package.json, and not search up the hierarchy to change a higher level package.json

Step to reproduce

Ubuntu 24.04.1 LTS, Node.js 22.13.0 LTS, Corepack 0.30.0

rm -rf ~/.cache/node/corepack
corepack enable yarn

git clone https://github.com/cypress-io/github-action
cd github-action
git clean -xfd # if repeating
cd examples/yarn-classic
corepack use [email protected]
git status

package.json in the root of the repo has been modified (not examples/yarn-classic/package.json) with the addition of

"packageManager": "[email protected]+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"

yarn install has been run in examples/yarn-classic, creating a new examples/yarn-classic/node_modules directory there.

Logs

The debug logs do not show which directory is being used to write a package.json file, nor which directory yarn install is being run in:

$ corepack use [email protected]
Installing [email protected] in the project...
  corepack Installing [email protected] from https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz +0ms
  corepack Downloading to /home/mike/.cache/node/corepack/v1/corepack-5003-f7268cee.b6ed3 +1ms
  corepack LastKnownGood file would be located at /home/mike/.cache/node/corepack/lastKnownGood.json +802ms
  corepack No LastKnownGood version found in Corepack home. +0ms
  corepack Download and install of [email protected] is finished +0ms
  corepack Checking /home/mike/github/cypress-io/github-action/examples/yarn-classic/package.json +1ms
  corepack Checking /home/mike/github/cypress-io/github-action/examples/package.json +0ms
  corepack Checking /home/mike/github/cypress-io/github-action/package.json +0ms
  corepack Checking /home/mike/github/cypress-io/package.json +1ms
  corepack Checking /home/mike/github/package.json +0ms
  corepack Checking /home/mike/package.json +0ms
  corepack Checking /home/package.json +0ms
  corepack Checking /package.json +0ms

yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Vorherrschende Sprache
TypeScript
Sterne
3.8k
Forks
282
Ø Merge
3 Std. 21 Min.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus nodejs/corepack

Alle Issues in nodejs/corepack

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.