Zum Inhalt springen

Einführung

Moderne JavaScript-Projekte stehen auf den Schultern tausender kleiner Bibliotheken — Werkzeuge für Bundling, Testing, UI-Komponenten, Datumsfunktionen und vieles mehr. Ein Paketmanager löst das Problem, all diese Abhängigkeiten zu installieren, zu versionieren und reproduzierbar zu halten.

Früher wurden externe Bibliotheken über CDN-Links in HTML eingebunden:

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>

Das funktioniert, hat aber Nachteile:

  • Versionen müssen manuell im HTML gepflegt werden
  • Offline-Entwicklung ist erschwert
  • Transitive Abhängigkeiten (Bibliotheken, die selbst Bibliotheken brauchen) müssen manuell aufgelöst werden
  • Kein einheitlicher Mechanismus für Build-Tools, Linter, Test-Runner usw.

npm (Node Package Manager) ist der Standardpaketmanager im JavaScript-Ökosystem und wird zusammen mit Node.js installiert. Er besteht aus zwei Teilen:

  • CLI — das npm-Kommando im Terminal
  • Registry — ein öffentliches Verzeichnis von Paketen unter npmjs.com, das heute über zwei Millionen Pakete enthält
Terminal-Fenster
# Alle Abhängigkeiten aus package.json installieren
npm install
# Ein einzelnes Paket installieren und in package.json eintragen
npm install lodash
# Ein Paket nur für die Entwicklung installieren
npm install --save-dev vite
# Ein Paket global installieren (selten nötig)
npm install -g typescript

Nach npm install liegt der gesamte heruntergeladene Code im Ordner node_modules/. Dieser Ordner wird nicht ins Git-Repository eingecheckt — er wird bei Bedarf aus package.json und package-lock.json wiederhergestellt.