NPM steht für Node Package Manager und ist das Standard-Paketverwaltungssystem für JavaScript (und damit auch TypeScript).

Was NPM macht:

NPM ermöglicht es dir, fertige Code-Pakete (Libraries, Frameworks, Tools) in dein Projekt einzubinden, anstatt alles selbst schreiben zu müssen. Du kannst z.B. mit npm install axios eine HTTP-Library installieren und sofort nutzen.

Die drei Hauptkomponenten:

  1. Die Registry – eine riesige Online-Datenbank mit über 2 Millionen öffentlichen Paketen (reagiert unter npmjs.com)
  2. Die CLI – das Kommandozeilen-Tool, mit dem du Pakete installierst, aktualisierst und verwaltest
  3. package.json – die Konfigurationsdatei in deinem Projekt, die alle Abhängigkeiten und Metadaten speichert

Zusammenhang mit JavaScript/TypeScript:

NPM wurde ursprünglich für Node.js entwickelt (serverseitiges JavaScript), ist aber heute der De-facto-Standard für praktisch alle JavaScript- und TypeScript-Projekte – egal ob Backend, Frontend, oder Tools. TypeScript selbst wird übrigens auch via NPM installiert (npm install typescript).

Typische Befehle:

Alternativen sind übrigens Yarn und pnpm, die kompatibel zur NPM-Registry sind, aber andere Installationsmechanismen nutzen.

Analogon zu Python

Die Entsprechungen:

JavaScript/NPM Python
npm (CLI) pip
npmjs.com (Registry) PyPI (Python Package Index)
package.json requirements.txt oder pyproject.toml
node_modules/ virtuelle Umgebung (z.B. venv/)

Wichtiger Unterschied: Python hat kein automatisches projektlokales Dependency-Management wie NPM. Deshalb arbeitet man typischerweise mit virtuellen Umgebungen (python -m venv .venv), um Abhängigkeiten pro Projekt zu isolieren.