Veröffentlichung des Paketmanagers , der mit Node.js ausgeliefert 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. Pro Monat werden etwa 75 Milliarden Downloads verzeichnet. NPM 7.0 ist die erste signifikante Version, die nach NPM Inc. von GitHub. Die neue Version wird in die nächste Version der Plattform , die für den 20. Oktober erwartet wird, integriert. 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 einzigen Paket zu aggregieren, um sie in einem Schritt zu installieren.
- Automatische Installation (wird in Plugins verwendet, um die grundlegenden Pakete zu bestimmen, für die das aktuelle Paket ausgelegt ist, auch wenn es direkt darin nicht verwendet wird). Peer-Abhängigkeiten werden in der Datei package.json im Abschnitt „peerDependencies“ angegeben. Früher 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 derselben Ebene oder höher im Abhängigkeitsbaum node_modules gefunden wird.
- Die zweite Version des Lockfile-Formats (package-lock v2) und die Unterstützung der yarn.lock-Datei. Das neue Format ermöglicht reproduzierbare Builds und umfasst alles, was für den vollständigen Aufbau des Abhängigkeitsbaums erforderlich ist. NPM kann jetzt auch yarn.lock-Dateien als Quelle für Paketmetadaten und Lock-Informationen verwenden.
- Es wurde eine umfassende Überarbeitung der internen Komponenten durchgeführt, um die Funktionalität aufzuteilen, was die Wartung erleichtert und die Zuverlässigkeit erhöht. Beispielsweise wurde der Code zur Inspektion und Verwaltung des node_modules-Baums in ein separates Modul verschoben. .
- Der Wechsel zur Nutzung des Feldes package.exports wurde vollzogen, was die Verwendung interner Module über den Aufruf require() unmöglich macht.
- Das Paket wurde vollständig neu geschrieben. , das nun den Befehl „npm exec“ verwendet, um ausführbare Dateien aus Paketen zu starten.
- Die Ausgabe des Befehls „npm audit“ wurde erheblich geändert, sowohl bei der Ausgabe im lesbaren Format als auch im Modus „—json“.
Quelle: opennet.ru
