It’s #FrontendFriday – Was ist der Unterschied zwischen NPM und NPX?

28.04.2023

NPM müsste wohl den meisten Frontend-Entwicklern ein Begriff sein. Doch es gibt neben NPM noch ein weiteres Tool, welches uns Node liefert:, und zwar NPX. In diesem #FrontendFriday Beitrag will ich euch NPX näherbringen und die Unterschiede zu NPM aufzeigen.

Was ist NPM?

NPM steht für Node Package Manager. Es ist das Standard-Tool zum Verwalten von Paketen und Abhängigkeiten in Node.js. Mit NPM kann man neue Pakete installieren, aktualisieren und Abhängigkeiten verwalten. Es wird normalerweise verwendet, um Pakete global oder lokal in einem Projekt zu installieren. Das wird über den Befehl „npm install“ ausgeführt.

Was ist NPX?

Seit NPM Version 5.2 wird automatisch noch das Tool NPX mitgeliefert. NPX steht für „NPM package executor“. NPX wird hauptsächlich verwendet, um Befehle auszuführen, die in einem Paket enthalten sind, ohne das Paket tatsächlich zu installieren. Es ermöglicht auch ein Paket nur einmalig auszuführen und dann zu löschen. Dies spart Zeit ein, da es die Notwendigkeit beseitigt, ein Paket global oder lokal zu installieren. Das bedeutet, dass der Befehl „npx“ ein Paket nur einmal installiert.

Unterschiede zwischen NPM und NPX

Vergleichen wir mal den Einsatz von beiden Tools anhand eines Beispiels. Unser Ziel ist es, in einem bestehenden Projekt einen Test mit Jest auszuführen.

Beispiel NPM

Um die Tests auszuführen, müssen wir zuerst mit „npm install jest“ das Test-Framework Jest auf unser System installieren. Sobald das Tool auf dem System installiert ist, kann man mit „npm test“ die Tests ausführen.

Beispiel NPX

Um Jest mit NPX auszuführen, müssen wir lediglich „npx jest“ eingeben. Dadurch wird Jest einmalig heruntergeladen und die Tests ausführen. Dadurch spart man sich die Zeit und den Speicherplatz, der benötigt wird, um Jest global oder lokal zu installieren. Ein weiterer starker Vorteil, den NPX bringt, ist, dass man Pakete mit unterschiedlichen Versionen ausführen kann, ohne diese global bzw. lokal zu installieren. Das bedeutet man kann mit „npx jest@28.1.3“ eine ältere Version von Jest ausführen, um damit zu prüfen, ob es bei dem Update auf Jest 29 zu einem breaking change gekommen ist. Dieses Vorgehen kann man natürlich auch dafür nutzen, um neue Paket-Versionen (z.B. latest) zu testen, bevor man diese final in das Projekt integriert.

Zusammenfassend lässt sich sagen, dass NPM hauptsächlich für die Verwaltung von Paketen und Abhängigkeiten in der Node.js-Entwicklung verwendet wird, während NPX für die einmalige Ausführung von Befehlen aus einem Paket verwendet wird. Beide Tools sind unverzichtbar für die Node.js-Entwicklung und ermöglichen es Entwicklern, ihre Arbeit schneller und effizienter zu erledigen.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*