So vermeiden Sie die Installation von Paketen in Monorepo mit Yarn


10

Ich baute eine monorepo mit Lerna und Yarn Workspaces .

Alles funktioniert gut, aber jedes Mal, wenn ich eine neue Abhängigkeit von einem Paket installiere (nennen wir ihn A ) , benutze ich :

yarn add <package_name>

Yarn fügt es hinzu und löst dann das installSkript aller Pakete im Monorepo aus, auch der Pakete, auf die sich A nicht verlässt.

Es gibt es trotzdem, um dies zu vermeiden? Es dauert einen Moment, bis sie ohne Grund installiert sind.


Sie haben also sowohl Lerna- als auch Garnpakete verwendet? Warum nicht einfach Lerna? Haben Sie auch versucht, das Paket mit Lerna hinzuzufügen und einen Bereich festzulegen? github.com/lerna/lerna/tree/master/commands/add
kbariotis

Ich verwende Lerna, um meine Pakete und Garnarbeitsbereiche zu veröffentlichen und zu versionieren, um Abhängigkeiten einfach zu verwalten. Ich habe Ihren Vorschlag ausprobiert und es hat nicht funktioniert. Vielen Dank für den Versuch :)
Erazihel

Antworten:


4

Versuchen Sie, dem spezifischen Arbeitsbereich Folgendes hinzuzufügen: -

yarn workspace <workspace_name> add <package_name>

Einige Dokumente finden Sie hier


Ich möchte die Abhängigkeit nicht für den gesamten Arbeitsbereich installieren, sondern nur für ein Paket
Erazihel

4

Sie können Garn 2 mit nodeLinker: node-modulesin versuchen .yarnrc.yml. Garn 2 garantiert, dass die Neuerstellung nur für Pakete ausgelöst wird, deren Abhängigkeiten geändert wurden. Dies wurde von Garn 1 nicht garantiert. Es wird jedoch immer noch sehr selten vorkommen, dass scheinbar nicht verwandte Pakete neu erstellt werden, wenn sie nach dem Hinzufügen eines neuen Pakets anders gehisst werden , aber das wird sehr selten passieren.


Ich habe Ihren Vorschlag ausprobiert, aber es scheint, dass das Ergebnis leider immer noch das gleiche ist ...: /
Erazihel

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.