Skip to content

Zwischen Projekten wechseln

Einer der Hauptvorteile von Volta ist der nahtlose Umgang mit verschiedenen Tool-Versionen über Projekte hinweg. Diese Seite erklärt, wie Volta automatisch Ihre JavaScript-Umgebung verwaltet, während Sie zwischen Projekten wechseln.

Automatisches Versionswechseln

Im Gegensatz zu anderen Versionsmanagern, die erfordern, dass Sie manuell zwischen Tool-Versionen wechseln, handhabt Volta dies automatisch basierend auf Ihrem aktuellen Verzeichnis.

Wie es funktioniert

  1. Wenn Sie einen JavaScript-Befehl ausführen (wie node, npm oder eine Paket-Binärdatei), fängt Voltas Shim den Befehl ab
  2. Volta überprüft Ihr aktuelles Verzeichnis, um zu sehen, ob Sie sich in einem Projekt mit festgelegten Tool-Versionen befinden
  3. Wenn ja, verwendet Volta die festgelegten Versionen aus der package.json dieses Projekts
  4. Wenn Sie sich nicht in einem Projekt mit festgelegten Versionen befinden, verwendet Volta Ihre Standard-Tools

All dies geschieht transparent ohne zusätzliche Befehle.

Beispiel-Workflow

Stellen Sie sich vor, Sie haben zwei Projekte mit unterschiedlichen Node.js-Anforderungen:

Projekt A (~/projects/project-a/package.json):

json
{
  "volta": {
    "node": "14.19.1",
    "npm": "6.14.16"
  }
}

Projekt B (~/projects/project-b/package.json):

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

Ihr Workflow könnte so aussehen:

bash
# In Projekt A
cd ~/projects/project-a
node --version  # Zeigt v14.19.1
npm --version   # Zeigt v6.14.16

# Wechsel zu Projekt B
cd ~/projects/project-b
node --version  # Zeigt automatisch v16.14.2
npm --version   # Zeigt automatisch v8.5.0

# Außerhalb eines Projekts
cd ~
node --version  # Zeigt Ihre Standard-Node-Version

Verschachtelte Projekte

Wenn Sie verschachtelte Projekte haben, verwendet Volta die Tool-Versionen aus der nächstgelegenen package.json mit einem volta-Abschnitt.

Zum Beispiel:

/parent-project/package.json (hat volta-Abschnitt mit node@14)
/parent-project/child-project/package.json (hat volta-Abschnitt mit node@16)
/parent-project/other-directory/ (keine package.json)

Wenn Sie Befehle ausführen in:

  • /parent-project/child-project/ - Volta verwendet Node.js 16
  • /parent-project/other-directory/ - Volta verwendet Node.js 14
  • /parent-project/ - Volta verwendet Node.js 14

Paket-Binärdateien

Voltas automatisches Wechseln gilt auch für Paket-Binärdateien. Wenn Sie beispielsweise eine projektspezifische Version von TypeScript haben und tsc ausführen, stellt Volta sicher, dass die korrekte Version verwendet wird.

Globale vs. lokale Pakete

Wenn Sie eine Paket-Binärdatei ausführen:

  1. Wenn die Binärdatei in den node_modules/.bin/ Ihres Projekts existiert, verwendet Volta diese Version
  2. Wenn nicht, aber das Paket global über Volta installiert ist, verwendet es diese Version
  3. Andernfalls zeigt es einen Fehler an, dass der Befehl nicht gefunden wurde

Fehlerbehebung

Wenn Sie Probleme mit dem Versionswechseln haben:

  • Überprüfen Sie, dass Ihr Projekt einen volta-Abschnitt in seiner package.json hat
  • Führen Sie volta list all aus, um Ihre installierten Tools zu überprüfen
  • Überprüfen Sie, dass die Tools, die Sie benötigen, entweder an Ihr Projekt gebunden oder als Standardversionen installiert sind
  • Führen Sie volta which node aus, um zu sehen, welche Version von Node.js Volta verwendet und warum