Anzeige
Anzeige
News

Mit Workspaces und automatisierten Peer-Dependency-Installationen: npm 7.0.0 ist da

Wie für ein Major Update üblich, gibt es in der neuen Version einige Breaking Changes. Entwickler müssen sich aber trotzdem keine Sorgen um ihre Projekte und Workflows machen, vorerst bleibt die neue Version opt-in.

2 Min.
Artikel merken
Anzeige
Anzeige

(Grafik: GitHub)

npm, den Paketmanager für die JavaScript-Runtime Node.js gibt es mittlerweile seit elf Jahren. Mit Version 7.0.0 hat das zugehörige CLI jetzt ein Update erhalten. Die neue Version wurde erstmals im Mai diesen Jahres vorgestellt und soll nächste Woche mit Node.js 15.0.0 ausgeliefert werden. Wer solange nicht warten will, kann die neue Version bereits jetzt über npm i -g npm@7 installieren.

Das ist neu

Workspaces und automatische Peer-Dependency-Installationen

Anzeige
Anzeige

V 7.0.0 des npm-CLI wartet mit einer Neuerung namens Workspaces auf. Dahinter verbergen sich eine Reihe von Features, die die Verwaltung mehrerer Packages ausgehend von einem einzelnen übergeordneten Root-Package ermöglichen sollen.

Außerdem spannend: Der Peer-Dependency-Algorithmus der neuen Version findet jetzt automatisch passende Peer-Dependencies für eure Packages, bisher mussten Entwickler diese manuell installieren.

Anzeige
Anzeige

Neues Package-Lock-Format und Unterstützung für yarn.lock

Das Package-Lock-Format wurde überarbeitet, so dass es jetzt offenbar alles enthält, was npm für die vollständige Erstellung des Package Trees benötigt. Bisher wurden yarn.lock-Dateien offenbar ignoriert, ab V7 kann der npm-Client auch daraus Paketmetadaten und Auflösungshinweise auslesen.

Anzeige
Anzeige

Internal-Refactoring

Für mehr Stabilität wurde das Innenleben des npm-Clients einem umfassenden Refactoring unterzogen. Besonderes Augenmerk lag dabei auf der Trennung von voneinander unabhängigen Funktionalitäten. Zum Beispiel wurden Inspektion und Verwaltung des Node-Modules-Tree jetzt in das Arborist-Modul verschoben. Wer sich für Details diesbezüglich interessiert: Auf dem npmjs-Blog gibt es einen Deep-Dive dazu. Derartige Veränderungen sollen auf längere Sicht für mehr Stabilität und bessere Wartbarkeit der npm-CLI-Codebase sorgen. Das für die Überarbeitung verantwortliche Produkt-Team hat V 7.0.0 laut Blogpost zum Release über die Node.js Smoke-Testing-Suite CITGM gegen 120 der am weitesten verbreiten Node-Module ausgeführt. Das erfreuliche Ergebnis: trotz massiver Änderungen am Code des CLI liefen alle davon auch in Verbindung mit V 7.0.0 wie gehabt.

Breaking Changes 😱

Ganz ohne Breaking Changes kommt die neue Version allerdings nicht aus. Darunter ist die bereits erwähnte automatische Installation sogenannter Peer Dependencies. V7 beinhaltet die Nutzung des package.exports-Fields, require() auf internale npm-Module anzuwenden ist deshalb in der neuen Version nicht mehr möglich. Auch wurde npx komplett überarbeitet – der zugehörige Befehl lautet ab jetzt npm exec, hinzu kommen verschiedene Veränderungen des Package Runners – die wohl Auffälligste ist eine Eingabeaufforderung, wenn das auszuführende Modul noch nicht installiert ist. Außerdem wurde der Output von npm audit komplett überarbeitet. Die Einzelheiten zu allen Neuerungen und Breaking Changes sind im Detail auf dem npmjs.com-Blog nachzulesen.

Anzeige
Anzeige

Opt-In

Weil die siebte Version so viele einschneidende Veränderungen mitbringt, hat das verantwortliche Produktteam entschieden, beim Upgrade auf die neue Version vorerst einen Opt-In-Ansatz zu wählen. Für Entwickler heißt das, dass eure Projekte nicht per Default die neue Version erhalten – es sei denn, ihr installiert V 7 über  npm install -g npm@7 , oder aber, ihr installiert Node.js 15.

Zum Default werden soll V 7 dann in naher Zukunft. Bevor die neue Version Eingang in einen LTS-Release von Node.js finden wird, will das Produktteam um das Tool jedoch vorerst Feedback und Bug-Reports aus der Community abwarten. Wer Ideen und Vorschläge einbringen will, findet das zugehörige RFC-Repository auf GitHub.

 

Anzeige
Anzeige

 

 

 

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige