Paketmanager: npm 7 bringt Neues für die Kommandozeile

Neben neuen Features für das CLI des Paketmanagers ermöglicht das Update, Peer Dependencies mit einem neuen Algorithmus automatisch zu verwalten.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 6 Beiträge

(Bild: Nice to meet you / Shutterstock.com)

Von
  • Madeleine Domogalla

Das npm-Team hat npm 7.0.0 veröffentlicht. Der Paketmanager verwaltet zahlreiche JavaScript-Pakete und war ursprünglich auf das Zusammenspiel mit Node.js ausgelegt. Die siebte Hauptversion soll mit Node.js 15 ausgerollt werden. Außerdem steht sie bereits jetzt über das Terminal zum Testen bereit: npm i -g npm@7.

Technisch gesehen kombiniert npm ein Kommandozeilenwerkzeug mit einer online verfügbaren Datenbank, die sich auch über die Weboberfläche einsehen lässt. Der Großteil der Pakete stammt aus dem Open-Source-Bereich, für die das Unternehmen npm Inc. kostenfreie Lizenzen ausstellt. Zusätzlich bietet es mit npm Enterprise eine kommerzielle Variante für nicht öffentlich zugängliche Pakete und zusätzliche Securitychecks an.

npm 7 bringt einige neue Features für das npm Command Line Interface (CLI), die die Verwaltung mehrere Pakete eines einzelnen Root-Pakets auf Top-Level-Ebene aus unterstützen. Darüber hinaus bringt das Update die Möglichkeit, Peer Dependencies mit einem neuen Algorithmus automatisch zu verwalten. Vor npm 7 mussten Entwickler offenbar ihre eigenen Peer-Abhängigkeiten verwalten und installieren. Die Neuerung sorgt dafür, dass eine gültig übereinstimmende Peer-Abhängigkeit an oder über der Position dieser Peer-Abhängigkeit im node_modules-Baum gefunden wird.

Zu den neuen Funktionen gehört zudem ein Package-Lock-Format, das die Möglichkeit freischaltet, deterministisch reproduzierbare Builds zu erstellen. Außerdem soll das Format alles mitbringen, was npm benötigt, um den Paketbaum vollständig zu erstellen. Vor Version 7 hatte der Paketmanager die yarn.lock-Datein offenbar ignoriert. Mit dem Update verwendet der npm-Client nun yarn.lock als Quelle für Paketmetadaten sowie Hinweise zum Auflösen.

Das npm-Team gibt an, die Interna des Paketmanagers erheblich refaktorisiert zu haben. So wurde beispielsweise die Inspektion und Verwaltung des node_modules-Baums in das Modul Arborist verschoben. Änderungen wie diese sollen die npm-Codebasis zuverlässiger und einfacher wartbar machen. Weitere Informationen zum aktuellen Release finden sich im Beitrag auf dem npmjs-Blog.

(mdo)