© saicle/Shutterstock.com
npm und seine Abhängigkeiten

Node.js-Module: npm


Für die Verwaltung von Abhängigkeiten in Node.js-Projekten ist der Node Package Manager – kurz npm – mittlerweile nicht mehr wegzudenken. Doch dieses Werkzeug hat auch so seine Tücken, und das gerade in umfangreichen Projekten. In den folgenden Abschnitten erfahren Sie, wie Sie mit den Abhängigkeiten und ihren Versionen umgehen und wie Sie veraltete und nicht mehr verwendete Pakete finden.

Die Abhängigkeiten Ihrer Applikation werden in der zentralen Konfigurationsdatei Ihres Projekts, der pack­age.json-Datei, festgehalten. Die Mindestanforderung pro Paket ist der Paketname und eine Versionsnummer. Im Normalfall tragen Sie diese Informationen jedoch nicht von Hand in die Datei ein, sondern lassen dies npm für Sie übernehmen. Mit der Option -S wird die Abhängigkeit als normale Dependency eingetragen, mit der Option -D als devDependency. Bei der Installation können Sie mit einem @-Zeichen getrennt vom Paketnamen auch eine konkrete Versionsnummer angeben. npm selbst nutzt das semver-Paket, um Versionsnummern zu behandeln. Falls Sie genauer wissen möchten, welche Möglichkeiten Ihnen bei der Angabe von Versionsnummern zur Verfügung stehen, werfen Sie doch einmal einen Blick in die Dokumentation des semver-Pakets [1].

Standardmäßig werden Versionen als so genannte Caret Ranges angegeben. Installieren Sie beispielsweise Express in Ihrem Projekt, finden Sie in der package.json einen Eintrag wie "express": "^4.14.0". Diese Schreibweise gibt an, dass die Versionsnummer, die direkt neben der am weitesten links stehenden 0 nicht aktualisiert werden darf. So dürfte in diesem Fall das express-Paket nicht auf die Version 5 aktualisiert werden. Haben Sie ein Paket mit der Version ^0.4.2 installiert, kann zwar die Version 0.4.3, nicht aber 0.5 installiert werden.

Abhängigkeiten

Seit der Version 4 von npm werden die installierten Abhängigkeiten nicht mehr in einer schier endlosen Hierarchie von Verzeichnissen abgelegt. Diese Strategie hat häufig unter Windows-Systemen zu Problemen mit überlangen Pfaden geführt. Mittlerweile werden die Pakete in einer flachen Hierarchie direkt im node_mod­ules-Verzeichnis gespeichert. Das führt allerdings dazu, dass man sich nicht mehr mit einem Blick in das Verzeichnis einen Überblick verschaffen kann.

Stattdessen müssen Sie auf der Kommandozeile den Befehl npm ls ausführen, der Ihnen eine Auflistung aller installierten Pakete zurückgibt. Je nachdem, wie viele Abhängigkeiten Sie installiert haben und über wie viele Abhängigkeiten diese Pak...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang