Arbeitsbereiche
Details darüber, wie Volta in einer Workspace-Umgebung verwendet wird, wo es mehrere Projekte in einem einzigen Repository gibt und sie alle Volta-Einstellungen teilen möchten.
TIP
Diese Funktion wurde in Volta 0.8.2 hinzugefügt, sie funktioniert nicht bei früheren Versionen.
Erweitern der Konfiguration
Innerhalb des "volta"
-Abschnitts in der package.json
können Sie einen Eintrag mit dem Schlüssel "extends"
angeben. Der Wert dieses Eintrags sollte ein Pfad zu einer anderen JSON-Datei sein, die ebenfalls einen "volta"
-Abschnitt hat. Relative Pfade werden relativ zu der Datei aufgelöst, in der sie gesetzt sind. Alle Volta-Einstellungen (z.B. "node"
- oder "yarn"
-Versionen) werden mit denen aus der Datei zusammengeführt, auf die "extends"
verweist, wobei die aktuelle Datei Vorrang hat. Wenn Sie also eine einzige Node-Version für alle Ihre Projekte haben möchten, würden Sie diese Versionen im Root setzen, und dann würde jedes Projekt nur "extends": "../path/to/root/package.json"
benötigen.
Beispiele
Bei der folgenden Ordnerstruktur und package.json
-Inhalten:
.
├── package.json
└── packages
├── cli
│ └── package.json
└── utils
└── package.json
package.json
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}
packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}
packages/utils/package.json
{
"volta": {
"extends": "../../package.json"
}
}
Das Ausführen von node
irgendwo im Workspace würde dazu führen, dass Sie Node 12.16.1
verwenden. Und wenn Sie diese Version in der Root-package.json
aktualisieren, wird sie automatisch in allen Projekten verwendet, ohne die Einstellungen in jedem Unterprojekt duplizieren zu müssen.
Tools festlegen
Wenn Sie volta pin
ausführen, um eine Version eines Tools innerhalb eines Workspace auszuwählen, wird Volta diese Einstellungen immer zur nächstgelegenen package.json
hinzufügen, die es findet. Im obigen Beispiel würde, wenn Sie volta pin node@14
innerhalb des packages/utils
-Unterprojekts ausführen, die neue Version von Node in packages/utils/package.json
geschrieben und nur auf das utils
-Unterprojekt angewendet werden, nicht auf die anderen. Dies ermöglicht es Ihnen, die Tool-Versionen pro Projekt einfach anzupassen.
Wenn Sie volta pin
verwenden möchten, um eine Änderung an der Root-Konfiguration vorzunehmen, wechseln Sie zuerst mit cd
in das Workspace-Root-Verzeichnis und führen Sie dann volta pin
von dort aus.
Hooks
Wenn Ihr Projekt Project-Hooks verwendet, können Sie diese entweder in einem .volta
-Verzeichnis in einem Unterprojekt oder in einem .volta
-Verzeichnis im Root platzieren. Volta wird an jedem Ort nach Hooks suchen, auf den ein "extends"
-Schlüssel verweist, sodass die Einstellungen auf jeder benötigten Ebene angepasst werden können.
Projektlokale Binärdateien
Zusätzlich zur Suche nach Hooks auf jeder Ebene wird Volta auch auf jeder Ebene suchen, um projektlokale Abhängigkeiten zu erkennen, die beim Ausführen eines Drittanbieter-Tools verwendet werden sollen. Es wird versuchen, sie in node_modules/.bin
relativ zu jeder Datei zu finden, auf die "extends"
verweist.