Package-Manager im Vergleich: yarn & npm

Package-Manager im Vergleich: yarn & npm

Lesedauer ca: 2 Minuten

Package-Manager sind Tools, die es einem Entwickler erlauben die Installation, die Updates, die Konfiguration und das Entfernen von Paketen aus globalen sowie privaten Archiven zu automatisieren. Dies sorgt dafür das Paket-Abhängigkeiten in das Projekt eingetragen werden und Konflikte bei der Installation automatisch und nicht mehr vom Entwickler gelöst werden. Die zwei am weitesten verbreiteten JavaScript Package-Manager sind yarn und npm.

Npm wurde aus der Not heraus als einheitliches Paket Management Tool entwickelt und ist das bevorzugte Tool für die Node.js Plattform, während yarn von Facebook entwickelt wurde um npm um seine fehlenden Eigenschaften zu erweitern. Allerdings besitzt npm seit dem 5.0 Update beinahe alle Feature die yarn zum Favoriten unter den JavaScript Entwicklern machte.

Jedoch existieren weiterhin entscheidende Unterschiede zwischen den beiden Package-Managern.

Worin unterscheiden Sie sich?

Geschwindigkeit

Um die Geschwindigkeit zu testen haben wir ein neues Projekt erstellt und sowohl yarn als auch npm aktualisiert (zu diesem Zeitpunkt hatte yarn Version 1.3.2 und npm Version 5.6.0). Bei unseren Tests war yarn ohne Offline-Cache mit 1,838 Sekunden 41% schneller als npm 5 mit 3,941 Sekunden und yarn mit Offline-Cache mit 2,744 Sekunden 53% schneller als npm 5 mit 4,668 Sekunden.

Sicherheit

Yarn besitzt ein Feature, welches die Checksumme eines Paketes überprüft und den Entwickler daran hindert modifizierten Code bei der Installation von JavaScript Paketen auszuführen. Dies sorgt dafür, dass modifizierte Pakete mit möglicher Schadsoftware abgefangen werden und sich somit nicht in das Software-Projekt des Entwicklers einnisten können. Npm bietet hier nichts Vergleichbares, obwohl dies eine schwerwiegende Sicherheitslücke darstellt.

Stabilität und Zuverlässigkeit

Seit npm Version 5 besitzen beide Package-Manager die lock-Datei, die fixe Versionen für Pakete beinhaltet und Fehler durch neue Paket-Versionen verhindert, sowie einen Offline-Cache, der Pakete lokal abspeichert und es dem Entwickler ermöglicht Pakete schnell und ohne Internetverbindung zu installieren. Dies führt zur einer stabileren und weniger fehleranfälligen Entwicklungsphase, da für den Entwickler immer ersichtlich ist, welche Paketversionen genutzt werden und sich diese nicht ohne die bewusste Entscheidung des Entwicklers ändern können.

Der beste Packet-Manager für JavaScript

Sowohl yarn als auch npm bieten vergleichbare Features, allerdings ist yarn npm im Punkt Geschwindigkeit weit voraus und bietet ein weiteres Sicherheitsfeature mit dem Vergleich der Checksumme. Aus diesen Gründen setzen wir bei der Entwicklung mit JavaScript bereits seit geraumer Zeit auf yarn. Dadurch konnten wir unsere Produktivität erhöhen und unseren Kunden eine erhöhte Sicherheit gewährleisten.

Sie haben eine Projektidee?​​​

Vereinbaren Sie jetzt ein unverbindliches Strategiegespräch mit einem unserer Experten.