Paketverwaltung: npm 5 mit überarbeitetem Installer und grunderneuertem Cache freigegeben

Nachdem ein Cache-Rewrite schon lange im Gespräch war, steht die neue Variante nun als Teil von npm 5 zur Verfügung. Dadurch soll sich unter anderem die Geschwindigkeit verbessern und weiteren Neuerungen der Weg geebnet werden.

In Pocket speichern vorlesen Druckansicht
Paketverwaltung: npm 5 mit überarbeitetem Installer und grunderneuertem Cache freigegeben
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Die Arbeiten an Version 5 des Package-Managers für die JavaScript-Laufzeitumgebung Node.js, npm, sind beendet und das Ergebnis steht unter anderem auf GitHub zum Download bereit. Die größten Neuerungen lassen sich im grunderneuerten Cache und im überarbeiteten Installer finden. So wurden etwa Paketmetaden, -Download und die Caching-Infrastrukur ersetzt, und npm entfernt fehlerhafte Cache-Einträge nun automatisch beziehungsweise holt die Daten erneut, sollte die Integritätsprüfung fehlschlagen.

Zu den nicht rückwärtskompatiblen Änderungen zählt unter anderem, dass npm install ./packages/subdir nun einen Symlink statt einer regulären Installation zur Folge hat und bestehende npm-Caches nicht länger verwendet werden, weshalb zwischengespeicherte Pakete neu herunterzuladen sind. --cache-min und --cache-max hat das npm-Team derweil als veraltet markiert und mit --prefer-offline sowie --prefer-online neue Optionen zum Umgang mit zwischengespeicherten Daten zur Verfügung gestellt.

Was den Installer angeht, gibt es nun ein standardisiertes Lockfile-Feature, dass Kompatibilität zwischen Paketmanagern herstellen soll, sowie ein neues Format und eine entsprechende Semantik für das Tool zum Festschreiben der Versionen von Paketabhängigkeiten shrinkwrap. Vorinstallierskripte höherer Level laufen nun zuerst, sodass sie node_modules ändern können, bevor die CLI sie liest. Einrückungen werden für package.json, package-log.json und npm-shrinkwrap.json erkannt und beibehalten, und statt des gesamten Installationsbaums erscheint dem Nutzer nun ein zusammenfassender Bericht nach abgeschlossener Installation.

npm nutzt nach der Aktualisierung standardmäßig die --save-Option und erstellt eine package-lock.json-Datei, sollte kein npm-shrinkwrap.json vorhanden sein. Außerdem kann die Paketverwaltung mit semantischer Versionierung für Git-Abhängigkeiten umgehen. Weitere Neuerungen lassen sich dem Blogbeitrag zum Release entnehmen. (jul)