pnpm vs npm: was sich wirklich unterscheidet

pnpm vs npm

pnpm vs npm: Speicher, Lockfiles, Workspaces, Befehlsübersicht | We.Inc

Wie pnpm und npm Pakete speichern, Versionen sperren und Monorepos verwalten, ein durchsuchbarer Übersetzer von npm- zu pnpm-Befehlen und die genauen Schritte, um ein Projekt sicher umzustellen.

npm kopiert jedes Paket in das node_modules jedes Projekts und hebt sie flach nach oben. pnpm hält einen einzigen inhaltsadressierten Speicher auf der Festplatte, verlinkt Dateien daraus per Hardlink und legt nur deine direkten Abhängigkeiten auf die oberste Ebene von node_modules. Das spart Speicherplatz und verhindert, dass Code Pakete importiert, die er nie deklariert hat. Die meisten Befehle entsprechen sich eins zu eins.

Die wichtigsten Unterschiede

Beide Tools lesen dieselbe package.json und installieren aus derselben Registry, die Wahl hängt also an Aufbau, Geschwindigkeit wiederholter Installationen, Monorepo-Werkzeugen und Strenge. Unten siehst du, wie jedes Tool Pakete speichert, einen Übersetzer für die Befehle, die du schon kennst, und die Schritte, um ein bestehendes Projekt von npm auf pnpm umzustellen.

Häufige Fragen

Ist pnpm schneller als npm?

pnpm verwendet oft Dateien wieder, die schon in seinem Speicher liegen, was wiederholte Installationen auf demselben Rechner beschleunigt. Die Geschwindigkeit hängt vom Cache-Zustand, vom Netzwerk und von der Projektgröße ab, miss also beide an deinem eigenen Projekt, statt dich auf einen veröffentlichten Benchmark zu verlassen.

Kann ich pnpm in einem Projekt mit package-lock.json verwenden?

Ja. Führe pnpm import aus, um aus package-lock.json, npm-shrinkwrap.json oder yarn.lock eine pnpm-lock.yaml zu erzeugen, lösche dann das alte Lockfile und node_modules und führe pnpm install aus.

Warum findet meine App nach dem Umstieg auf pnpm ein Modul nicht?

Dein Code oder eine Abhängigkeit importiert ein Paket, das nicht in der eigenen package.json steht. Der flache Aufbau von npm hat diesen Fehler versteckt. Füge das fehlende Paket als Abhängigkeit dort hinzu, wo es importiert wird.

Braucht pnpm eine Node.js-Installation?

Die Installationsdokumentation von pnpm beschreibt pnpm 12 als natives Programm, das selbst kein Node.js zum Laufen braucht. Deine Projektskripte brauchen Node.js natürlich trotzdem.

Welches sollten Einsteiger verwenden?

npm, weil es mit Node.js ausgeliefert wird und fast jedes Tutorial es verwendet. Steig auf pnpm um, wenn du ein Monorepo betreibst, viele Projekte auf einem Rechner hast oder den strengeren Aufbau von node_modules willst.

Wie jedes Tool Pakete speichert

Workspaces und Monorepos

Ein Projekt von npm auf pnpm umstellen

Migrationsschritte

pnpm import liest das npm-Lockfile, damit du die Versionen behältst, die du bereits getestet hast. Lass deine Tests laufen, bevor du committest.

Jeder Ordner, der hier passt, wird zu einem Workspace-Paket. Leg die Datei im Root des Repositorys ab.

Abhängigkeit von einem lokalen Paket

workspace:* löst immer auf die lokale Kopie von ui auf statt auf eine Version aus der Registry.

Übersetzer von npm- zu pnpm-Befehlen

Gib einen npm-Befehl ein

npm install -D vite

pnpm-Gegenstück

Keine direkte Entsprechung. Die meisten anderen npm-Befehle heißen unter pnpm genauso.

npm-Befehle und ihre pnpm-Gegenstücke

Kopieren

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap