Version des Paketmanagers , der mit Node.js geliefert wird und zur Verteilung von Modulen in JavaScript verwendet wird. Das NPM-Repository verwaltet über 1,3 Millionen Pakete, die von etwa 12 Millionen Entwicklern genutzt werden. Monatlich werden etwa 75 Milliarden Downloads verzeichnet. NPM 7.0 war die erste bedeutende Version, die nach NPM Inc. von GitHub veröffentlicht wurde. Die neue Version wird Teil der zukünftigen Veröffentlichung der Plattform , die am 20. Oktober erwartet wird. Um NPM 7.0 zu installieren, ohne auf die neue Version von Node.js zu warten, kann der Befehl „npm i -g npm@7“ ausgeführt werden.
:
- Arbeitsbereiche (), die es ermöglichen, Abhängigkeiten aus mehreren Paketen in einem Paket zu aggregieren, um sie in einem Schritt zu installieren.
- Automatische Installation (werden in Plugins verwendet, um die Basispakete zu definieren, mit denen das aktuelle Paket arbeiten soll, auch wenn sie nicht direkt darin verwendet werden). Peer-Abhängigkeiten werden in der Datei package.json im Abschnitt „peerDependencies“ angegeben. Bisher wurden solche Abhängigkeiten manuell von Entwicklern installiert, aber in NPM 7.0 wurde ein Algorithmus implementiert, der garantiert, dass eine korrekt definierte Peer-Abhängigkeit auf der gleichen oder einer höheren Ebene des abhängigen Pakets im node_modules-Baum gefunden wird.
- Die zweite Version des Lockdateiformats (package-lock v2) und die Unterstützung der yarn.lock-Datei. Das neue Format ermöglicht reproduzierbare Builds und enthält alles, was für den vollständigen Aufbau des Paketbaums erforderlich ist. NPM kann nun auch yarn.lock-Dateien als Quelle für Paketmetadaten und Blockierungsinformationen verwenden.
- Es wurde ein umfassendes Refactoring der internen Komponenten durchgeführt, das darauf abzielt, die Funktionalität zu trennen, um die Wartung zu erleichtern und die Zuverlässigkeit zu erhöhen. Beispielsweise wurde der Code zur Überprüfung und Verwaltung des node_modules-Baums in ein separates Modul verschoben. .
- Der Übergang zur Nutzung des Feldes package.exports wurde vollzogen, was es unmöglich macht, interne Module über den Aufruf von require() anzuschließen.
- Das Paket , wurde vollständig neu geschrieben und verwendet jetzt den Befehl „npm exec“, um ausführbare Dateien aus Paketen zu starten.
- Die Ausgabe des Befehls „npm audit“ wurde erheblich geändert, sowohl im lesbaren Format als auch im „—json“-Modus.
Quelle: opennet.ru
