Installieren von Node.js unter Windows-Subsystem für Linux (WSL2)

Wenn Sie Node.js professionell verwenden, Sie die Leistungsgeschwindigkeit und Kompatibilität von Systemaufrufen für wichtig halten, Docker-Container ausführen möchten, die Linux-Arbeitsbereiche nutzen, und vermeiden, sowohl Linux- als auch Windows-Build-Skripte verwalten zu müssen, oder einfach die Verwendung einer Bash-Befehlszeile bevorzugen, dann installieren Sie Node.js unter Windows-Subsystem für Linux (genauer gesagt WSL 2).

Mithilfe von Windows-Subsystem für Linux (WSL) können Sie Ihre bevorzugte Linux-Distribution installieren (Ubuntu ist unsere Standardeinstellung), sodass Sie Konsistenz zwischen Ihrer Entwicklungsumgebung (in der Sie Code schreiben) und der Produktionsumgebung (dem Server, auf dem Ihr Code bereitgestellt wird) haben können.

Hinweis

Wenn Sie noch nicht mit der Entwicklung mit Node.js vertraut sind und einen schnellen Einstieg zum Lernen suchen, empfehlen wir Node.js unter Windows zu installieren. Diese Empfehlung gilt auch, wenn Sie eine Windows Server-Produktionsumgebung verwenden möchten.

Installieren von WSL 2

WSL 2 ist die aktuellste verfügbare Version für Windows und wird für professionelle Node.js Entwicklungs-Workflows empfohlen. Zum Aktivieren und Installieren von WSL 2 folgen Sie den Schritten in der Dokumentation zur WSL-Installation. Diese Schritte umfassen die Auswahl einer Linux-Verteilung (z. B. Ubuntu).

Nachdem Sie WSL 2 und eine Linux-Verteilung installiert haben, öffnen Sie die Linux-Verteilung (sie befindet sich im Windows-Startmenü), und überprüfen Sie die Version und den Codenamen mit dem Befehl lsb_release -dc.

Es empfiehlt sich, die Linux-Verteilung regelmäßig zu aktualisieren, z. B. auch unmittelbar nach der Installation, um sicherzustellen, dass Sie über die neuesten Pakete verfügen. Dieses Update wird unter Windows nicht automatisch verarbeitet. Verwenden Sie den Befehl sudo apt update && sudo apt upgrade, um die Verteilung zu aktualisieren.

Installieren von Windows-Terminal (optional)

Windows-Terminal ist eine verbesserte Befehlszeilen-Shell, mit der Sie mehrere Registerkarten ausführen können, sodass Sie schnell zwischen Linux-Befehlszeilen, Windows-Eingabeaufforderung, PowerShell, Azure CLI oder einer beliebigen anderen wechseln können. Sie können auch benutzerdefinierte Tastenbelegungen erstellen (Tastenkombinationen zum Öffnen oder Schließen von Registerkarten, Kopieren und Einfügen, usw.), die Suchfunktion verwenden, Ihr Terminal mit Designs (Farbschemas, Schriftarten und -größen, Hintergrundbild/Weichzeichner/Transparenz) anpassen und vieles mehr. Weitere Informationen zu Farbschemas finden Sie im Windows Terminal Documentation.

Besuchen Sie den Microsoft Store und installieren Sie Windows-Terminal: Durch die Installation über den Store werden Updates automatisch durchgeführt.

Installieren von nvm, Node.js und npm

Neben der Wahl, ob unter Windows oder WSL installiert werden soll, gibt es beim Installieren von Node.js weitere Optionen. Es wird empfohlen, einen Versions-Manager zu verwenden, da sich die Versionen sehr schnell ändern. Es ist wahrscheinlich notwendig, dass Sie je nach den Anforderungen einzelner Projekte, an denen Sie arbeiten, zwischen verschiedenen Versionen von Node.JS zu wechseln. Node Version Manager (meist als nvm bezeichnet) ist die beliebteste Methode zum Installieren mehrerer Versionen von Node.js. Hier werden die Schritte zum Installieren von nvm durchlaufen, um anschließend Node.js und Node Package Manager (npm) zu installieren. Es gibt alternative Versions-Manager, die im nächsten Abschnitt behandelt werden.

Wichtig

Es wird immer empfohlen, vorhandene Installationen von Node.js oder npm vom Betriebssystem zu entfernen, bevor du einen Versions-Manager installierst, da die unterschiedlichen Installationstypen zu ungewöhnlichen und verwirrenden Konflikten führen können. Beispielsweise ist die Version von Node, die mit dem Befehl apt-get von Ubuntu installiert werden kann, zurzeit veraltet. Hilfe beim Entfernen früherer Installationen findest du unter Entfernen von Node.js aus Ubuntu.)

  1. Öffnen Sie die Ubuntu-Befehlszeile (oder die Verteilung Ihrer Wahl).

  2. Installiere cURL (ein Tool zum Herunterladen von Inhalten aus dem Internet an der Befehlszeile) mit sudo apt-get install curl.

  3. Installiere nvm mit curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash.

    Hinweis

    Durch die Installation einer neueren Version von nvm mithilfe von cURL wird die ältere Version ersetzt. Die Node-Version, die Sie für die Installation von nvm verwendet haben, bleibt dabei intakt. Weitere Informationen finden Sie auf der GitHub-Projektseite mit den neuesten Releaseinformationen zu nvm.

  4. Gib zum Überprüfen der Installation Folgendes ein: command -v nvm. Dies sollte „nvm“ zurückgeben. Wenn du als Antwort „Befehl nicht gefunden“ oder gar keine Antwort erhältst, schließe das aktuelle Terminal, öffne es erneut, und versuche es noch einmal. Weitere Informationen findest du im GitHub-Repository zu nvm.

  5. Liste mit nvm ls die Versionen von Node auf, die derzeit installiert sind (sollte zu diesem Zeitpunkt keine sein).

    NVM list showing no Node versions

  6. Installieren Sie sowohl die aktuelle als auch die stabile LTS-Version von Node.js. In einem späteren Schritt erfahren Sie, wie Sie mit einem nvm-Befehl zwischen aktiven Versionen von Node.js wechseln.

    • Installieren Sie das aktuelle stabile LTS-Release von Node.js (empfohlen für Produktionsanwendungen): nvm install --lts
    • Installieren Sie das aktuelle Release von Node.js (zum Testen der neuesten Node.js-Features und -Verbesserungen, das aber wahrscheinlich einige Fehler enthält): nvm install node
  7. Liste die installierten Versionen von Node auf: nvm ls. Nun sollten die beiden Versionen, die du soeben installiert hast, aufgeführt werden.

    NVM list showing LTS and Current Node versions

  8. Überprüfe mit node --version, ob Node.js installiert ist und die neueste Version aufweist. Überprüfe dann, ob du auch über npm verfügst: npm --version (Du kannst auch which node oder which npm verwenden, um den Pfad anzuzeigen, der für die Standardversionen verwendet wird.)

  9. Um die Version von Node.js zu ändern, die du für ein Projekt verwenden möchtest, erstellst du ein neues Projektverzeichnis mkdir NodeTest und wechselst in das Verzeichnis (cd NodeTest). Gib dann nvm use node ein, und wechsele zur aktuellen Version, oder verwende nvm use --lts, um zur LTS-Version zu wechseln. Du kannst auch eine spezifische andere Version verwenden, die du installiert hast, z. B. nvm use v8.2.1. (Um alle verfügbaren Versionen von Node.js aufzulisten, verwendest du den Befehl nvm ls-remote.)

Wenn du nvm verwendest, um Node.js und npm zu installieren, musst du nicht den Befehl „sudo“ verwenden, um neue Pakete zu installieren.

Alternative Versions-Manager

Obwohl nvm derzeit der beliebteste Versions-Manager für Node ist, gibt es auch Alternativen:

  • n ist eine langfristige Alternative zu nvm, die das gleiche mit leicht abweichenden Befehlen erreicht und über npm anstelle eines Bash-Skripts installiert wird.
  • fnm ist ein neuerer Versions-Manager, der schneller als nvm sein soll. (Außerdem verwendet er Azure Pipelines.)
  • Volta ist ein neuer Versions-Manager des LinkedIn-Teams, der mit höherer Geschwindigkeit und plattformübergreifender Unterstützung wirbt.
  • asdf-vm ist eine einzelne Befehlszeilenschnittstelle für mehrere Sprachen, z. B. ike gvm, nvm, rbenv und pyenv (usw.).
  • nvs (Node Version Switcher) ist eine plattformübergreifende Alternative zu nvm mit der Möglichkeit der Integration mit VS Code.

Installieren von Visual Studio Code

Es wird empfohlen, Visual Studio Code mit dem Remote-Entwickler-Erweiterungspaket für Node.js-Projekte zu verwenden. Dadurch wird VS Code in eine Client-Server-Architektur aufgeteilt, wobei der Client (die VS Code-Benutzeroberfläche) auf einem Windows-Betriebssystem und der Server (der Code, Git, Plug-Ins usw.) remote auf Ihrer WSL Linux-Verteilung ausgeführt wird.

Hinweis

Dieses „Remoteszenario“ unterscheidet sich geringfügig von dem, was Sie vielleicht gewohnt sind. Die WSL unterstützt eine echte Linux-Verteilung, bei der Ihr Projektcode getrennt von Ihrem Windows-Betriebssystem, aber immer noch auf Ihrem lokalen Computer ausgeführt wird. Die Remote-WSL-Erweiterung stellt eine Verbindung mit Ihrem Linux-Subsystem her, als handle es sich um einen Remoteserver, auch wenn sie nicht in der Cloud ausgeführt wird… Sie wird weiterhin auf dem lokalen Computer in der WSL-Umgebung ausgeführt, die Sie für die Ausführung parallel zu Windows aktiviert haben.

  • Linux-basierte Funktionen wie IntelliSense und Linting werden unterstützt.
  • Dein Projekt wird automatisch unter Linux erstellt.
  • Du kannst alle Erweiterungen verwenden, die unter Linux ausgeführt werden (ES Lint, npm IntelliSense, ES6-Codeausschnitte usw.).

Andere Code-Editoren wie IntelliJ, Sublime Text, Brackets, usw. funktionieren auch mit einer WSL 2-Node.js-Entwicklungsumgebung, verfügen jedoch möglicherweise nicht über die gleichen Remotefunktionen wie VS Code. Bei diese Code-Editoren können Probleme beim Zugriff auf den freigegebenen WSL-Netzwerkort auftreten (wsl$\Ubuntu\home). Sie könnten versuchen, deine Linux-Dateien gegen deinen Wunsch mithilfe von Windows-Tools zu erstellen. Die Remote-WSL-Erweiterung in VS Code übernimmt diese Kompatibilität für Sie, bei anderen IDEs müssen Sie eventuell einen X-Server einrichten. Die Unterstützung für die Ausführung von GUI-Apps in WSL (z. B. eine Code-Editor-IDE) ist in Kürze verfügbar.

Terminalbasierte Text-Editoren (Vim, emacs, nano) sind ebenfalls hilfreich, um schnell Änderungen direkt an der Konsole vorzunehmen. Der Artikel Emacs, Nano, or Vim: Choose your Terminal-Based Text Editor Wisely (Emacs, Nano oder Vim: Wählen Sie Ihren terminalbasierten Texteditor sorgfältig aus) erklärt sinnvoll einige Unterschiede und eauch ein Stück weit, wie man die einzelnen Editoren benutzt.

So installierst du VS Code und die Remote-WSL-Erweiterung

  1. Laden Sie VS Code für Windows herunter, und installieren Sie es. VS Code ist auch für Linux verfügbar. Da das Windows-Subsystem für Linux jedoch keine GUI-Apps unterstützt, muss VS Code unter Windows installiert werden. Die Integration in die Befehlszeile und die Tools von Linux ist jedoch durch Verwendung der Erweiterung „Remote – WSL“ problemlos möglich.

  2. Installieren Sie die Erweiterung „Remote – WSL“ in VS Code. Dies ermöglicht Ihnen die Verwendung von WSL als integrierte Entwicklungsumgebung, während die Verarbeitung der Kompatibilität und der Pfadzuordnung automatisch erfolgt. Weitere Informationen

Wichtig

Wenn Sie VS Code bereits installiert haben, müssen Sie sicherstellen, dass Sie über das Release vom Mai (1.35) oder höher verfügen, um die Erweiterung „Remote – WSL“ installieren zu können. Es wird davon abgeraten, WSL in VS Code ohne die Erweiterung „Remote – WSL“ zu verwenden, da dann keine Unterstützung für automatisches Vervollständigen, Debuggen, Linting usw. vorhanden ist. Hinweis: Diese WSL-Erweiterung wird unter „$HOME/.vscode-server/extensions“ installiert.

Hilfreiche Erweiterung für VS Code

Obwohl VS Code viele bereits integrierte Features für die Entwicklung mit Node.js bietet, gibt es im Node.js-Erweiterungspaket einige hilfreiche Erweiterungen, die du installieren kannst. Installiere entweder alles, oder wähle aus, welche Komponenten für dich am nützlichsten sind.

So installierst du das Node.js-Erweiterungspaket

  1. Öffne in VS Code das Fenster Erweiterungen (STRG+UMSCHALT+X).

    Das Fenster „Erweiterungen“ ist nun in drei Abschnitte unterteilt (da du die Remote-WSL-Erweiterung installiert hast).

    • „Lokal – installiert“: Die für die Verwendung mit dem Windows-Betriebssystem installierten Erweiterungen.
    • "WSL:Ubuntu-18.04-Installed": Die für die Verwendung mit dem Ubuntu-Betriebssystem (WSL) installierten Erweiterungen.
    • „Empfohlen“: Erweiterungen, die von VS Code basierend auf den Dateitypen in deinem aktuellen Projekt empfohlen werden.

    VS Code Extensions Local vs Remote

  2. Gib im Suchfeld am oberen Rand des Fensters „Erweiterungen“ Folgendes ein: Node Extension Pack (oder den Namen der gewünschten Erweiterung). Die Erweiterung wird für deine lokalen oder WSL-Instanzen von VS Code installiert, je nachdem, wo du das aktuelle Projekt geöffnet hast. Du kannst das erkennen, indem du in der linken unteren Ecke des VS Code-Fensters den Remotelink auswählst (grün). Du kannst dann entweder eine Remoteverbindung öffnen oder eine schließen. Installiere die Node.js-Erweiterungen in der Umgebung „WSL:Ubuntu-18.04“.

    VS Code remote link

Folgende zusätzliche Erweiterungen solltest du ebenfalls in Erwägung ziehen:

  • JavaScript Debugger: Nachdem du die serverseitige Entwicklung mit Node.js abgeschlossen hast, musst du die Clientseite entwickeln und testen. Diese Erweiterung ist ein DAP-basierter JavaScript-Debugger. Er debuggt Node.js, Chrome, Edge, WebView2, VS Code-Erweiterungen und vieles mehr.
  • Tastaturlayouts anderer Editoren: Durch diese Erweiterungen wird die Arbeit in deiner Umgebung vereinfacht, wenn du von einem anderen Text-Editor umsteigst (z. B. Atom, Sublime, Vim, emacs, Notepad++ usw.).
  • Einstellungssynchronisierung: Damit kannst du die VS Code-Einstellungen in verschiedenen Installationen über GitHub synchronisieren. Wenn Sie auf verschiedenen Computern arbeiten, können Sie die Umgebung auf diese Weise konsistent halten.

Einrichten von Git (optional)

Informationen zum Einrichten von Git für ein Node.js-Projekt in WSL finden Sie im Artikel Erste Schritte mit Git im Windows-Subsystem für Linux in der WSL-Dokumentation.