Skip to content

Konfiguration von nvmrc

Einführung

Bei der Entwicklung mehrerer Projekte kann jedes Projekt eine andere Node.js-Version erfordern. In solchen Fällen müssen wir die Node.js-Version für jedes Projekt festlegen, indem wir die Befehle nvm install und nvm use im Terminal ausführen, um Versionen zu installieren und zu wechseln.

Das manuelle Ausführen von Befehlen im Terminal wird jedoch mit der Zeit mühsam, besonders wenn die Anzahl der Projekte zunimmt. Es ist leicht, den Versionswechsel zu vergessen oder zur falschen Version zu wechseln, was dazu führen kann, dass Projekte nicht starten oder während der Laufzeit Fehler auftreten.

Hier benötigen wir eine Methode zur Verwaltung von Node.js-Versionen und zum automatischen Wechseln zwischen ihnen, und hier kommt .nvmrc ins Spiel.

Was ist .nvmrc?

Aus der obigen Erklärung können Sie verstehen, dass die .nvmrc-Datei verwendet wird, um die Node.js-Version für unser Projekt zu verwalten. Diese Datei ist sehr einfach: Sie enthält nur Text, der eine Node.js-Version darstellt, die nvm erkennen kann, wie z.B. v18.12.0.

Wie verwendet man die .nvmrc-Datei?

Sie können eine .nvmrc-Datei mit Inhalt erstellen, der eine Node.js-Versionsnummer oder ein anderer Text ist, den nvm verstehen kann. Für Details können Sie nvm --help im Terminal eingeben.

Mit der .nvmrc-Datei wird bei der Ausführung von Befehlen wie nvm use, nvm install, nvm exec, nvm run und nvm which im Terminal ohne Angabe einer Version die in der .nvmrc-Datei angegebene Version verwendet.

Erstellen einer .nvmrc-Datei

Zum Beispiel können Sie im aktuellen Verzeichnis mit dem Befehl echo eine .nvmrc-Datei erstellen, damit nvm die neueste Version von Version 18.12, die neueste LTS-Version oder die neueste Node.js-Version angibt:

bash
$ echo "18.12" > .nvmrc
# Die neueste LTS-Version einstellen
$ echo "lts/*" > .nvmrc
# Die neueste Version einstellen
$ echo "node" > .nvmrc

Befehle wie nvm use durchsuchen die Verzeichnisstruktur vom aktuellen Verzeichnis aus nach oben auf der Suche nach der .nvmrc-Datei. Das bedeutet, dass die Ausführung von Befehlen wie nvm use in einem beliebigen Unterverzeichnis eines Verzeichnisses mit einer .nvmrc-Datei immer noch diese .nvmrc-Datei verwendet.

Die .nvmrc-Datei muss eine <Version> enthalten, die dem entspricht, was in nvm --help aufgeführt ist, gefolgt von einem Zeilenumbruch. Nachfolgende Leerzeichen sind nicht erlaubt, und ein nachfolgender Zeilenumbruch ist erforderlich.

Wie im Bild unten zu sehen ist, gibt es nach v14.21.3 kein Leerzeichen, nur einen Zeilenumbruch.

nvmrc

Tiefe Integration mit Shell-Terminals

Sie können avn verwenden, um es tief in Ihre Shell zu integrieren und nvm beim Wechsel von Verzeichnissen automatisch aufzurufen.

Wenn Sie eine leichtgewichtige Lösung bevorzugen, können Sie die folgende Methode verwenden.

Automatisches Umschalten der Node.js-Versionen im zsh-Terminal basierend auf der .nvmrc-Datei

Nachdem Sie den folgenden Code zu Ihrer $HOME/.zshrc hinzugefügt haben, wird nvm use automatisch aufgerufen, wenn Sie ein Verzeichnis mit einer .nvmrc-Datei betreten. Die Zeichenfolge in der .nvmrc-Datei teilt nvm mit, welche Version von Node.js verwendet werden soll.

bash
# Home-Verzeichnis öffnen und .zshrc-Datei bearbeiten
$ cd
$ vi .zshrc

Dies ist der Code, der in .zshrc geschrieben werden muss:

bash
# Kopieren Sie dieses Codesegment in die .zshrc-Datei
# platzieren Sie dies nach der nvm-Initialisierung!
autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

Nach dem Bearbeiten der .zshrc-Datei führen Sie source .zshrc aus, damit der Befehl wirksam wird:

bash
$ source ~/.zshrc

In Projekten mit einer .nvmrc-Datei werden Sie feststellen, dass nvm use automatisch ausgeführt wird, wenn Sie das integrierte Terminal in vscode öffnen, mit entsprechender Ausgabe in der Befehlszeile.

nvmrc

Erstellt mit VitePress