`corepack use` in monorepo targets root not project package.json
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
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
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus nodejs/corepack
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
-
[BUG] corepack not use COREPACK_NPM_REGISTRY install of tarballEvtl. vergeben @Yash121l hat das vor 25 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
`Cannot find module .../bin/pnpm.cjs` after upgrading from Corepack <=0.34.4 with pnpm 12 cachedEvtl. vergeben @abappi19 hat das vor 4 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 75/100
-
Support signature verification against a custom COREPACK_NPM_REGISTRYEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 68/100
-
Error when upgrading pnpm to latest in `devEngines.packageManager`Evtl. vergeben @thiagobarbosa hat das vor 75 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 52/100
Alle Issues in nodejs/corepack
Ähnliche Issues
-
chore v2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
modelcontextprotocol/servers#5115 ·
Maintainer antworten meist innerhalb von 1 Tag
-
beginner bug good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
philaconvalley/website#168 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug frontend good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
oss-slu/lrda_mobile#294 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
hatchet-dev/hatchet#5179 ·
Maintainer antworten meist innerhalb von 1 Tag