JavaScript: So sehen die Neuerungen für Node.js 10 und npm@6 aus

Mit Version 10 der JavaScript-Laufzeitumgebung Node.js warten viele Neuerungen auf Entwickler. Unter anderem hat die N-API ihren experimentellen Status verloren. Zur gleichen Zeit führt der Paketmanager npm neue Sicherheitsfunktionen ein.

 –  30 Kommentare
JavaScript: So sehen die Neuerungen für Node.js 10 und npm@6 aus

(Bild: Node,js)

Anzeige

Version 10 der plattformunabhängigen JavaScript-Laufzeitumgebung Node.js ist erschienen. In der ersten zweistelligen Version der Plattform zur Entwicklung serverseitiger JavaScript-Anwendungen hat die bisher nur experimentell verfügbare N-API (Node.js API) den Einzug in Node.js geschafft. Außerdem ist Node.js 10.0.0 das erste Release, das Version 1.1.0 von der Software zur Implementierung von Netzwerkprotokollen OpenSSL unterstützt.

Im Zuge der Veröffentlichung von Node.js 10.0.0 ist ebenfalls Version 6 des Paketmanagers npm erschienen. Die neue Version bringt hier vor allem Neuerungen im Bereich Sicherheit.

Die N-API hat in Node.js 10.0.0 ihren experimentellen Status verloren. Bei ihr handelt es sich um eine API zum Erstellen nativer Add-ons. Sie ist unabhängig von der zugrunde liegenden JavaScript-Runtime. Außerdem soll das Application Binary Interface (ABI) der API über Node.js-Versionen hinweg stabil bleiben. Laut den Node.js-Entwicklern sollen dadurch Erweiterungen von Veränderungen der JavaScript-Engine isoliert sein, sodass Module, die für eine Node.js-Version kompiliert sind, auch für spätere Versionen funktionieren. Ein erneutes Kompilieren soll dabei nicht notwendig sein.

Die Node.js-Entwickler planen, die API auch für die älteren Node.js-Versionen 6.x und 8.x verfügbar zu machen. Die Veröffentlichung ist für das nächste Release der beiden Versionen vorgesehen. Das Team betont, dass diese Veränderung vor allem im Bereich des Internet der Dinge Relevanz finden wird, da Node.js so mit unterschiedlichen virtuellen JavaScript-Maschinen arbeiten kann.

Mit der Einführung der OpenSSL-Version 1.1.0 in die Laufzeitumgebung kann Node.js jetzt auf die ChaCha20-Cipher und den Poly1305-Echtheitsbestätigung zurückgreifen. Laut den Node-Entwicklern ebnet dies zusätzlich den Weg für ein schnelles API- und ABI-stabiles Upgrade auf OpenSSL 1.1.1. Mit dieser Version von OpenSSL soll das erst kürzlich finalisierte TLS-1.3-Protokoll seinen Weg in die Plattform finden.

Interessierte können weitere Neuerungen in der offiziellen Ankündigung auf Medium und in einem detaillierten Blogbeitrag finden. Ab Oktober 2018 ist Node.js 10.x der neue aktive Branch für die Langzeitunterstützung und wird damit Node 8.x ablösen. Das End of Life für Node.js 8.x ist allerdings erst für Dezember 2019 vorgesehen.

enterJS

Vom 19. bis 22. Juni findet in Darmstadt bereits zum fünften Mal die Konferenz für Enterprise-JavaScript statt. Node.js ist dort sowohl in Vorträgen als auch in einem Workshop Thema. Bis zum 27. April können Interessierte noch den Frühbucherrabatt der Konferenz nutzen. Veranstalter der Konferenz sind heise Developer, iX, und dpunkt.verlag.

Im selben Atemzug ist die sechste Version des Paketmanagers npm erschienen. Das Update beschränkt sich hauptsächlich auf Verbesserungen der Sicherheit. So sollen in Zukunft Nutzer der npm-Registry automatische Warnungen erhalten, wenn Code bekannte Sicherheitsrisiken aufweist. Laut dem npm-Team testet npm Installationsanfragen automatisch gegen die NSP-Datenbank (Node Security Platform) und warnt Nutzer bei entsprechenden Risiken.

Zusätzlich soll der neue Befehl npm audit Nutzern dabei helfen, ihre Abhängigkeiten rekursiv zu überprüfen, um so genau identifizieren zu können, wo sich Schwachstellen verstecken. Die Features sind bereits für Nutzer der npm Beta-Registry verfügbar, sollen aber in den nächsten Wochen für alle Mitglieder der Community nutzbar sein.

Die Neuerungen im Bereich Sicherheit sollten dabei wenig überraschen. Erst kürzlich gab npm bekannt, ^Lift Security gekauft zu haben und damit auch die Node Security Platform zu übernehmen.

Mehr dazu auf heise Developer:

[25.04.18, 15:29 Uhr, Korrektur]: Bei Node.js handelt es sich um eine Laufzeitumgebung. (bbo)

Anzeige