Am 20. April wurde eine neue 16-Version von Node.js veröffentlicht. Zu den wichtigsten Änderungen zählen das Update der JavaScript-Engine V8 auf Version 9.0, integrierte Binärdateien (Binärdateien) für Apple Silicon und mehrere APIs, aber das Wichtigste zuerst.
Eine vollständige Liste der Änderungen finden Sie hier .
Node.js 16 ersetzt Node.js 15 als "aktuelle" Version. Dieser Status bleibt für die nächsten 6 Monate bei ihm. Im Oktober 2021 wechselt Node.js 16 in den Status der langfristigen Unterstützung (LTS). Beim Übergang in den LTS-Status erhält er den Codenamen 'Gallium'. Release-
Details finden Sie im Repository der Node.js Release-Arbeitsgruppe... Lassen Sie uns zunächst die besten Nachrichten durchgehen.
Upgrade von V8 auf Version 9.0
Das V8-JavaScript-Engine-Update ist eine Leistungsverbesserung und bietet Node.js Unterstützung für die neuesten JavaScript-Funktionen. Übrigens hat Node.js 15 V8 Version 8.6 verwendet.
Zu den wichtigsten Änderungen an der Engine gehören die Unterstützung von Regexp-Übereinstimmungsindizes sowie ein verbesserter (schnellerer) Zugriff auf die "Super" -Eigenschaft.
Eine vollständige Liste der Änderungen finden Sie hier .
Konformitätsindizes
Mit übereinstimmenden IDs können Entwickler ein Array von Subarrays abrufen, die die Start- und Endpositionen (Indizes) von Erfassungsgruppen in einem regulären Ausdruck enthalten, wenn eine Übereinstimmung (oder mehrere Übereinstimmungen) vorliegt. Dieses Array ist über die Eigenschaft "Indizes" des Übereinstimmungsobjekts verfügbar. Beachten Sie, dass der reguläre Ausdruck, der zum Suchen von Übereinstimmungen verwendet wird, das Flag "/ d" haben muss.
const re = /(a)(b)/d // . /d
const m = re.exec('ab') //
console.log(m.indices[0]) // —
// [0, 2]
console.log(m.indices[1]) // —
// [0, 1]
console.log(m.indices[2]) // —
// [1, 2]
Zugriff auf die "super" -Eigenschaft
Der Zugriff auf die Super-Eigenschaft wurde durch die Verwendung eines integrierten Cache-Systems und die optimierte Codegenerierung in TurboFan verbessert (TurboFan ist der Compiler, Ignition ist für die Interpretation des Codes in V8 verantwortlich). Laut den V8-Entwicklern ist die Zugriffsgeschwindigkeit auf Super fast gleich der Zugriffsgeschwindigkeit auf eine reguläre Eigenschaft geworden.
Achse "Y" - die Anzahl der Operationen. Achse "X" - Zugriff auf die übliche Eigenschaft, Zugriff auf die "Super" -Eigenschaft (vor dem Update), Zugriff auf die "Super" -Eigenschaft (nach dem Update).
Stabile Timer versprechen API
Die Timers Promises-API bietet einen alternativen Satz von Timern, die ein "Promise" -Objekt zurückgeben, sodass util.promisify () nicht mehr erforderlich ist .
import { setTimeout } from 'timers/promises'
async function run() {
const greet = await setTimeout(3000, 'Hi!')
console.log(greet) // Hi!
}
run()
Die Timers Promises API wurde in Node.js 15 als experimentelle Funktion eingeführt. Jetzt hat es den Status einer stabilen Schnittstelle erhalten.
Weitere neue Funktionen
Der Release-Prozess ist so beschaffen, dass ungefähr alle 2 Wochen neue Funktionen in der "aktuellen" Version erscheinen. Aus diesem Grund waren viele der Funktionen in Node.js 15 verfügbar, sind jedoch für die Laufzeit noch relativ neu.
Zu diesen Möglichkeiten gehören:
- Experimentelle Implementierung des Web Crypto API- Standards
- npm 7 (v7.10.0)
- Node-API Version 8
- Stabile AbortController-Implementierung basierend auf der AbortController-Web-API
- Stabile Implementierung von Source Maps v3 (NODE_OPTIONS = - Enable-Source-Maps im Terminal oder {"Enable-Source-Maps": true} in .mocharc.json)
- atob (buffer.atob(data)) btoa (buffer.btoa(data)), API (/ «Base64»)
Node.js bietet integrierte Binärdateien für verschiedene Plattformen. Für jede Hauptversion wird der Mindestsatz an Instrumenten bewertet und so weit wie möglich erweitert.
Node.js 16 wird die erste Inline-Binärdatei für Apple Silicon sein . Während für die Intel- (darwin-x64) und ARM- (darwin-arm64) Architekturen separate Tarballs bereitgestellt werden, ist das "Installationsprogramm" (.pkg) für macOS eine Binärdatei mit mehreren Architekturen.
Für Linux-basierte Plattformen ist die Mindest- GCC- Stufe zum Generieren von Node.js 16 GCC 8.3.
Details zu den unterstützten Tools und Compilern finden Sie hier .
Ende der Unterstützung
Die Entwickler von Node.js versuchen, die Anzahl der Änderungen zu minimieren, die zu Störungen im Ökosystem führen können (dh die Arbeit der Node.js-Bibliotheken). Um solche Veränderungen zu erkennen, wird GITGM (Canary in the Gold Mine) verwendet .
Einige Funktionen sind jedoch veraltet. Einige der wichtigsten sind der Zugriff auf process.bindings () für einige Kernelmodule, z. B. process.binding ('http_parser') oder process.binding ('url').
Es sollte beachtet werden, dass die neue Hauptversion das Ergebnis der Bemühungen einer großen Anzahl von Personen ist, die daran interessiert sind, Node.js (Mitwirkende und Mitarbeiter) zu verbessern und weiterzuentwickeln. Um eine neue Version für die Produktion vorzubereiten, wird viel Arbeit geleistet Arbeitsgruppe "Node.js erstellen" .
Unsere Server können für die Entwicklung mit node.js verwendet werden.
Registrieren Sie sich über den obigen Link oder indem Sie auf das Banner klicken und erhalten Sie 10% Rabatt für den ersten Monat der Anmietung eines Servers einer beliebigen Konfiguration!