Freigeben über


Wählen Sie die richtige Node.js Version für Azure aus.

Bei der Entwicklung von JavaScript-Anwendungen für Azure ist es wichtig, die Versionen von Node.js in Ihrer lokalen Entwicklungsumgebung und der Hosting-Laufzeitumgebung abzustimmen. Diese Versionsausrichtung stellt Kompatibilität sicher, verringert die Wahrscheinlichkeit von Laufzeitfehlern und verwendet die vollständigen Funktionen der Azure-Plattform. In diesem Artikel erfahren Sie, wie Sie die entsprechende Node.js Version für Ihre von Azure gehosteten Anwendungen und Dienste auswählen.

Node.js-Versionen

Node.js folgt einem planbaren Veröffentlichungsplan, der sowohl Long Term Support (LTS) als auch aktuelle Versionen umfasst. LTS-Versionen sind für langfristige Wartung und Stabilität vorgesehen, sodass sie ideal für Produktionsumgebungen sind. Diese Versionen erhalten wichtige Fehlerkorrekturen, Sicherheitsupdates und Leistungsverbesserungen für einen längeren Zeitraum, in der Regel 30 Monate. Node.js verwendet ein gerades/ungerades Nummerierungssystem, um zwischen LTS und aktuellen Versionen zu unterscheiden: gerade nummerierte Versionen (z. B. 18, 20) sind LTS-Versionen, während ungerade Versionen (z. B. 19, 21) aktuelle Versionen sind. Aktuelle Versionen enthalten die neuesten Funktionen und Verbesserungen, werden aber nur sechs Monate lang unterstützt und gehen dann in eine LTS-Version über, wenn sie eine gerade Zahl haben.

Sie sollten Aktuelle Versionen in der Produktion nicht verwenden, da das sechsmonatige Zeitfenster mit den Laufzeiten der Azure-Hostingplattformen und SDKs nicht übereinstimmen kann. Sie werden feststellen, dass die Entwicklungs-Container für Node.js keine ungeraden/aktuellen Versionen anbieten.

Voraussetzungen

Alle Azure SDKS und gehosteten Dienste verwenden LTS-Versionen von Node.js. Wenn Ihr Anwendungscode in einer früheren Version von Node.jsausgeführt wurde, die für den Long Term Support (LTS) nicht mehr verfügbar ist, sollten Sie den Anwendungsquellcode so aktualisieren, dass er in einer LTS-Laufzeit ausgeführt wird.

Sie sollten auch wissen, auf welchen Hostingdienst Sie bereitstellen möchten und welche Azure-Dienste Ihre bereitgestellte Anwendung verwendet.

Kompatibilität zwischen Umgebungen

Sobald Sie wissen, welche Azure-Dienste und SDKs Ihre Anwendung verwendet, stellen Sie sicher, dass alle Umgebungen für die Anwendung dieselbe Version von Node.jserstellen und ausführen können:

  • Lokale Entwicklungsumgebung oder Entwicklungscontainer
  • CI/CD-Prozess Umgebung
  • Host-Runtime der Anwendung
  • Azure SDKs

Eine Erläuterung von Problemen im Zusammenhang mit der Verwendung verschiedener Versionen in Ihrer Gesamten Umgebung finden Sie unter Kompatibilitätsprobleme.

Hostingdienste

Wenn Sie Azure-Hostingdienste verwenden, können Sie entweder einen Container auf dem Host bereitstellen oder eine Node.js Version als Laufzeit für den Host auswählen. In beiden Fällen müssen Sie die Version der Laufzeit, den Anwendungscode und die Abhängigkeiten wie die Azure-SDKs abgleichen.

Verwenden Sie die folgende Tabelle, um Laufzeitinformationen zu finden:

Dienst

Versionsinformationen

Für Linux-Runtimes. Sie können auch den folgenden Azure CLI-Befehl ausführen, um alle unterstützten Versionen anzuzeigen.

az webapp list-runtimes | grep node

Neue Projekte sollten das neueste Programmiermodell verwenden.

Es gibt zwei verschiedene Laufzeiten zu berücksichtigen: das Front-End und die API, wenn Sie Ihre API in static Web Apps hosten.

Die SWA CLI bietet Entwicklungsumgebungsfunktionen wie Proxy, Authentifizierung und andere Konfigurationen.

Azure SDKs

Die Azure-SDKs erfordern Node.js LTS-Versionen, wie in der Supportrichtlinieangegeben. Es kann einen kurzen Zeitraum geben, in dem die von der Hostingumgebung unterstützten LTS-Versionen und die SDKs nicht übereinstimmen, da es Zeit benötigt, um neue Node.js LTS-Versionen zu überprüfen. Da in der Regel drei Versionen von Node.js als Long Term Support-Versionen gekennzeichnet sind, können Sie in der Regel auf die mittlere Version abzielen. Mit diesem Ziel können Sie einige Zeit testen und überprüfen, ob Ihre Anwendung zur nächsten LTS-Version wechseln kann.

Verwalten mehrerer Versionen von Node.js

Wenn Sie mehr als eine Version von Node.js in Ihren lokalen und Remoteumgebungen verwalten müssen, empfehlen wir Folgendes:

  • Entwicklungs-Container: Verwenden Sie einen Container mit einer bestimmten Node.js-Version. Sie können die Version von Node.js in mehreren Umgebungen mithilfe von Containern verwalten. Die Visual Studio Code-Erweiterung Remote – Container vereinfacht die Verwendung von Containern.
  • NVM (Node Version Manager): Eine Kommandozeilenschnittstelle zum Festlegen oder Wechseln deiner lokalen Version von Node.js.

Laden Sie Node.js herunter und installieren Sie es, je nach Ihrem beabsichtigten Einsatz.

Sie können Node.js basierend auf Ihren Anforderungen herunterladen und installieren.

Kompatibilitätsprobleme

Nachfolgend finden Sie einige allgemeine Kategorien von Kompatibilitätsproblemen, die auftreten können, wenn Node.js Versionen nicht in allen Umgebungen übereinstimmen:

  • Sicherheitslücken: Die Verwendung einer veralteten Version mit bekannten Sicherheitslücken kann Ihre Anwendung Sicherheitsrisiken aussetzen.

  • Syntaxfehler: Anwendungen, die die neueste JavaScript-Syntax verwenden, die von älteren Node.js Versionen nicht unterstützt werden, können Syntaxfehler verursachen. Diese Fehler verhindern, dass die Anwendung ausgeführt wird.

  • Veraltete APIs: APIs, die in neueren Node.js Versionen veraltet sind, können in älteren Versionen weiterhin vorhanden sein, was zu unerwartetem Verhalten oder Laufzeitfehlern führt, wenn die Versionen nicht übereinstimmen.

  • Leistungsverschlechterung: Neuere Node.js Versionen enthalten oft Leistungsverbesserungen. Das Ausführen Der Anwendung auf einer älteren Version kann zu langsameren Ausführungszeiten und einer verringerten Leistung führen.

  • Inkonsistentes Verhalten: Unterschiede bei der Behandlung bestimmter Vorgänge in Node.js Versionen, z. B. Pufferbehandlung, Ereignisschleifenverhalten oder Modulauflösung, können zu inkonsistentem Verhalten zwischen Umgebungen führen.

  • Abhängigkeitskonflikte: Node.js Module oder Pakete, die mit einer Version von Node.js kompatibel sind, sind möglicherweise nicht mit einer anderen kompatibel, was zu Abhängigkeitskonflikten und Laufzeitfehlern führt.

  • Build-Fehler: CI/CD-Pipelines, die eine andere Node.js-Version als die lokale Entwicklungsumgebung verwenden, können zu Build-Fehlern führen, die Verzögerungen im Entwicklungs- und Freigabeprozess verursachen.

Indem Sie sicherstellen, dass alle Umgebungen dieselbe Version von Node.jsverwenden, können Sie diese Kompatibilitätsprobleme beheben und einen reibungsloseren Entwicklungs- und Bereitstellungsprozess sicherstellen.