Zum Hauptinhalt springen

Node.js Applikationen betreiben

Dieser Artikel beschreibt, wie Sie eine Node.js-Installation im Userspace betreiben.

Die Installation im Userspace kann aus mehreren Gründen empfehlenswert sein:

  1. Sie haben die Kontrolle darüber, welche Node.js Version Sie verwenden.
  2. Sie können verschiedene Versionen für verschiedene Anwendungen verwenden.
  3. Sie können "globale" npm-Pakete installieren.

Mit dem “Node Version Manager”, nachstehend nvm genannt, können Sie mehrere Node.js-Versionen installieren und verwalten.

Die aktuelle Version von nvm finden Sie unter github.com/creationix/nvm.

Installation von nvm

nvm wird über ein Installations-Script installiert, welches von Github mit curl abgerufen werden kann:

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

Dadurch wird nvm direkt installiert und in Ihrer .bashrc exportiert. Um nvm direkt über die CLI nutzen zu können, muss die .bashrc neu eingelesen werden:

source .bashrc

Verwendung von NVM

Verfügbare Versionen anzeigen

nvm ls-remote

Installierte Version prüfen

nvm ls

Eine Version installieren

Die neueste LTS Version installieren

nvm install 'lts/*'

Eine bestimmte Version installieren

nvm install 5.0

Eine bestimmte Version verwenden

nvm use 5.0

Führen Sie einen Befehl mit einer bestimmten Version aus:

# nvm exec [<version>] [<command>]
# Run <command> on <version>. Uses .nvmrc if available and version is omitted.
nvm exec 5.0 node --version

Konfigurieren Sie eine Node-js-Version für ein bestimmtes Projekt:

Dies können Sie mit einer .nvmrc Datei tun:

$ cat .nvmrc
lts/*

Applikationen mit dem Prozess-Manager verwalten (pm2)

pm2 ist ein Prozessmanager für Node.js-Anwendungen mit integriertem Load Balancer. Dies ermöglicht Ihnen unter anderem, Anwendungen dauerhaft zu betrieben, Anwendungen ohne Ausfallzeit neu zu laden und erleichtert gängige Administrationsaufgaben.

Sie können pm2 mit folgendem Befehl installieren:

npm install pm2 -g

Nutzung von pm2

Starten von Applikationen

pm2 start app.js

Mehrere Instanzen der Applikation im Cluster starten

pm2 start app.js -i 4

pm2 Aktualisieren

pm2 update

pm2 Prozesse überwachen

pm2 list            # Zeigt alle Prozesse, die mit pm2 starten
pm2 monit # Zeigt Speicher- und CPU-Auslastung jeder aktiven Applikation
pm2 show [app-name] # Zeigt Informationen über die gewählte Applikation

pm2 Prozesse verwalten

pm2 startup   # Erkennt das 'init' System, erstellt und konfiguriert pm2 boot beim startup
pm2 save # Speichert die aktuelle Prozessliste
pm2 resurrect # Wiederherstellen der zuvor erstellten Prozesse
pm2 unstartup # Deaktiviert und entfernt das startup System

Applikation nach Systemneustart mittels SystemD starten

Um pm2 bei einem Neustart des Systems als Benutzer-Service zu starten, kann eine Systemd Unit (~/.config/systemd/user/pm2.service) verwendet werden:

[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/

[Service]
Type=forking
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

Environment=NODE_ENV=production
Environment=NODE_VERSION=14
Environment=PM2_HOME=%h/.pm2

PIDFile=%h/.pm2/%p.pid

ExecStart=%h/.nvm/nvm-exec pm2 resurrect
ExecReload=%h/.nvm/nvm-exec pm2 reload all
ExecStop=%h/.nvm/nvm-exec pm2 kill

[Install]
WantedBy=default.target

Weitere Informationen zu SystemD finden Sie in folgendem Support-Artikel.