Node.js 23.0 Plattform gouf mat initialer Ënnerstëtzung fir d'TypeScript Sprooch publizéiert

Node.js 23.0.0, eng Plattform fir Netzwierkapplikatiounen a JavaScript ze lafen, gouf verëffentlecht. Node.js 23.0 ass als Zwëschenzweig klasséiert, déi fir 7 Méint (bis Juni 2025) ënnerstëtzt gëtt. An den nächsten Deeg gëtt d'Stabiliséierung vun der Node.js 22 Branche ofgeschloss, déi den 29. Oktober LTS Status kritt a bis Abrëll 2027 ënnerstëtzt gëtt. Ënnerstëtzung fir vergaang LTS Filialen vun Node.js 20.x an 18.x wäert weider bis Abrëll 2026 an 2025, respektiv.

Main Verbesserungen:

  • Zousätzlech experimentell Ënnerstëtzung fir TypeScript, wat explizit Typdefinitioune erlaabt. Ënnerstëtzung ass aktivéiert mat den Optiounen "--experimentell-Strip-Typen" an "--experimentell-transform-Typen". Am Fall vun der éischter Optioun gëtt d'Aarbecht mat TypeScript reduzéiert fir Sproochspezifesch Typdefinitiounen ze läschen (Typprüfung gëtt net gemaach, de Code gëtt einfach an typelos JavaScript ëmgewandelt). Déi zweet Optioun konvertéiert e puer TypeScript Syntaxelementer, wéi Enums an Nummraim, an JavaScript Code.
  • Par défaut aktivéiert ass d'Fäegkeet fir den "require ()" Uruff ze benotzen fir JavaScript ESM Moduler (ECMAScript Moduler) am Synchronmodus ze lueden. ESM Moduler ginn a Browser benotzt an ersetzen CommonJS Moduler spezifesch fir Node.js. Fir iwwer "require ()" an Node.js ze lueden, muss den ESM Modul synchron ausgefouert ginn (ouni op den Topniveau waarden).
  • Automatesch Detektioun vun ESM Moduler an Dateien ouni oder mat der ".js" Extensioun gëtt zur Verfügung gestallt. Virdrun goufen esou Dateien als CommonJS Moduler behandelt, ausser hiren Typ gouf explizit an der package.json Datei uginn, déi am selwechte Verzeechnes läit ("Typ": "Modul"). An der neier Versioun, fir Dateien deenen hiren Typ net an package.json spezifizéiert ass, probéiert et als éischt als CommonJS Modul ze lueden, a wann dëst net klappt, dann als ESM Modul.
  • Experimentell Ëmsetzung dobäi kompatibel mat Browseren D'Web Storage API ass fir d'persistent (d'localStorage Klass) oder temporär (d'sessionStorage Klass) Späicherung vu Schlëssel-/Wäertdaten entwéckelt. Fir d'Web Storage Ënnerstëtzung z'aktivéieren, muss d'API mam Fändel "--experimental-webstorage" ausgeführt ginn an de Wee zur Späicherdatei mat dem Fändel "--localstorage-file" spezifizéiert ginn.
  • Experimentell SQLite API bäigefüügt fir mat Datenbanken ze schaffen mat der SQL Query Sprooch a Späichere baséiert op der SQLite Bibliothéik. Zousätzlech fir d'Datebank an enger Datei op Disk ze späicheren, kann se och an d'Erënnerung gesat ginn andeems Dir ": Erënnerung:" anstatt den Dateinumm spezifizéiert. Déi genannte Web Storage API gëtt och uewen op SQLite implementéiert, wat zu der Zousatz vu SQLite als Ofhängegkeet fir Node.js resultéiert.
  • De Kommando "Node —run" gouf stabil deklaréiert, entwéckelt fir Skripte ze lafen, déi an der package.json Datei definéiert sinn.
  • Implementéiert optional Ënnerstëtzung fir Cache kompiléiert Code op Disk fir de Start vu Moduler wesentlech ze beschleunegen. Caching gëtt iwwer d'NODE_COMPILE_CACHE Ëmfeldvariabel aktivéiert. Wat säin Zweck ugeet, gläicht d'Feature dem v8-compile-Cache Package, awer ënnerscheet sech a méi héijer Leeschtung an Ënnerstëtzung fir ESM Moduler.
  • De Bufferobjekt gouf optimiséiert fir d'Performance vun de Methoden Buffer.copy () an Buffer.write () wesentlech ze erhéijen.
  • D'Performance vum Node: fs Modul gouf verbessert, wat och d'Zuel vun den Uruff op C ++ Code während der Operatioun reduzéiert.
  • De V8-Motor gouf op d'Versioun 12.9 aktualiséiert, am Chromium 129 benotzt.
  • Ënnerstëtzung fir 32-Bit Windows Systemer gouf geläscht.
  • Wéinst der Aféierung vun Fonctiounen definéiert am C ++ 8 Standard an Node.js an der V20 Motor, sinn d'Ufuerderunge fir d'GCC Compiler Versioun erhéicht ginn. Node.js bauen erfuerdert elo op d'mannst GCC 12.

D'Node.js Plattform kann souwuel fir Server-Säit Ënnerstëtzung vu Webapplikatiounen wéi och fir Standard Client- a Server-Säit Netzwierkprogrammer benotzt ginn. Fir d'Funktionalitéit vun Node.js Applikatiounen auszebauen, gouf eng grouss Sammlung vu Moduler virbereet, dorënner déi, déi ... implementéieren Serveren a Clienten vun HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, Moduler fir d'Integratioun mat verschiddene Web-Frameworks, WebSocket- an Ajax-Handler, Connectoren zu DBMS (MySQL, PostgreSQL, SQLite, MongoDB), Template-Engines, CSS-Engines, Implementatioune vu kryptographeschen Algorithmen an Autorisatiounssystemer (OAuth), XML-Parseren.

Fir eng grouss Zuel vu parallele Ufroen ze handhaben, benotzt Node.js en asynchrone Code Ausféierungsmodell baséiert op net-blockéierend Eventveraarbechtung an definéieren Callback Handler. Ënnerstëtzt Methoden fir Multiplexing Verbindungen enthalen epoll, kqueue, /dev/poll, a wielt. Fir Verbindungsmultiplexing gëtt d'libuv-Bibliothéik benotzt, wat en Add-on fir libev op Unix Systemer an zu IOCP op Windows ass. D'libeio Bibliothéik gëtt benotzt fir e Fuedempool ze kreéieren, an c-ares ass integréiert fir DNS Ufroen an engem net-blockéierende Modus auszeféieren. All Systemappellen, déi d'Blockéierung verursaachen, ginn am Fuedempool ausgefouert an dann, wéi Signalhandteren, d'Resultat vun hirer Aarbecht duerch en onbenannt Päif zréckginn.

D'Ausféierung vum JavaScript Code ass gesuergt duerch d'Benotzung vum V8 Motor entwéckelt vu Google (ausserdeem entwéckelt Microsoft eng Versioun vum Node.js mam Chakra-Core Engine). Am Kär ass Node.js ähnlech wéi de Perl AnyEvent, Ruby Event Machine, Python Twisted Frameworks an d'Ëmsetzung vun Eventer am Tcl, awer d'Event Loop am Node.js ass vum Entwéckler verstoppt a gläicht Eventveraarbechtung an enger Webapplikatioun am Browser lafen.

Source: opennet.ru

Setzt e Commentaire