Platforma Node.js 23.0 bola publikovaná s počiatočnou podporou pre jazyk TypeScript

Node.js 23.0.0, platforma na spúšťanie sieťových aplikácií v JavaScripte, bola uvoľnená. Node.js 23.0 je klasifikovaný ako prechodná vetva, ktorá bude podporovaná 7 mesiacov (do júna 2025). V najbližších dňoch bude dokončená stabilizácia vetvy Node.js 22, ktorá 29. októbra získa štatút LTS a bude podporovaná do apríla 2027. Podpora minulých LTS pobočiek Node.js 20.xa 18.x bude pokračovať do apríla 2026, respektíve 2025.

Hlavné vylepšenia:

  • Pridaná experimentálna podpora pre TypeScript, ktorá umožňuje explicitné definície typov. Podpora je povolená pomocou možností „--experimental-strip-types“ a „--experimental-transform-types“. V prípade prvej možnosti sa práca s TypeScriptom redukuje na vymazanie definícií typov špecifických pre daný jazyk (nevykonáva sa kontrola typu, kód sa jednoducho skonvertuje na beztypový JavaScript). Druhá možnosť konvertuje niektoré prvky syntaxe TypeScript, ako sú enum a menné priestory, na kód JavaScript.
  • V predvolenom nastavení je povolená možnosť použiť volanie „require()“ na načítanie modulov JavaScript ESM (moduly ECMAScript) v synchrónnom režime. Moduly ESM sa používajú v prehliadačoch a nahrádzajú moduly CommonJS špecifické pre Node.js. Na načítanie cez "require()" v Node.js musí byť modul ESM spustený synchrónne (bez čakania na najvyššej úrovni).
  • Poskytuje sa automatická detekcia modulov ESM v súboroch bez alebo s príponou „.js“. Predtým sa takéto súbory považovali za moduly CommonJS, pokiaľ ich typ nebol výslovne špecifikovaný v súbore package.json umiestnenom v rovnakom adresári („typ“: „modul“). V novej verzii pre súbory, ktorých typ nie je špecifikovaný v package.json, sa najprv pokúsi načítať ako modul CommonJS a ak to zlyhá, potom ako modul ESM.
  • Pridaná experimentálna implementácia kompatibilný s prehliadačmi Rozhranie Web Storage API je navrhnuté na trvalé (trieda localStorage) alebo dočasné (trieda sessionStorage) ukladanie údajov typu kľúč/hodnota. Povolenie podpory webového úložiska vyžaduje spustenie rozhrania API s príznakom „--experimental-webstorage“ a zadanie cesty k súboru úložiska pomocou príznaku „--localstorage-file“.
  • Pridané experimentálne SQLite API pre prácu s databázami pomocou SQL dotazovacieho jazyka a úložiska založeného na SQLite knižnici. Okrem uloženia databázy do súboru na disku je možné ju umiestniť aj do pamäte zadaním „:memory:“ namiesto názvu súboru. Vyššie uvedené rozhranie Web Storage API je tiež implementované nad SQLite, výsledkom čoho je pridanie SQLite ako závislosti pre Node.js.
  • Príkaz „node —run“ bol vyhlásený za stabilný a je navrhnutý tak, aby spúšťal skripty definované v súbore package.json.
  • Implementovaná voliteľná podpora pre ukladanie skompilovaného kódu na disk pre výrazné zrýchlenie spúšťania modulov. Ukladanie do vyrovnávacej pamäte je povolené prostredníctvom premennej prostredia NODE_COMPILE_CACHE. Funkcia svojim účelom pripomína balík v8-compile-cache, líši sa však vyšším výkonom a podporou modulov ESM.
  • Objekt Buffer bol optimalizovaný tak, aby výrazne zvýšil výkon metód Buffer.copy() a Buffer.write().
  • Bol vylepšený výkon modulu node:fs, čo tiež znižuje počet volaní kódu C++ počas prevádzky.
  • Motor V8 bol aktualizovaný na verziu 12.9, ktorá sa používa v prehliadači Chromium 129.
  • Odstránená podpora pre 32-bitové operačné systémy Windows.
  • Vďaka zavedeniu funkcií definovaných v štandarde C++8 v Node.js a engine V20 boli zvýšené požiadavky na verziu kompilátora GCC. Vytváranie Node.js teraz vyžaduje aspoň GCC 12.

Platforma Node.js sa dá použiť ako na podporu webových aplikácií na strane servera, tak aj na vytváranie štandardných sieťových programov na strane klienta a servera. Na rozšírenie funkcionality aplikácií Node.js bola pripravená rozsiahla kolekcia modulov vrátane tých, ktoré implementujú serverov a klientov HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modulov pre integráciu s rôznymi webovými frameworkami, obslužných programov WebSocket a Ajax, konektorov k DBMS (MySQL, PostgreSQL, SQLite, MongoDB), šablónovacích nástrojov, CSS nástrojov, implementácií kryptografických algoritmov a autorizačných systémov (OAuth), XML parserov.

Na spracovanie veľkého počtu paralelných požiadaviek používa Node.js asynchrónny model vykonávania kódu založený na neblokujúcom spracovaní udalostí a obslužných rutinách spätných volaní. Medzi podporované metódy multiplexovania pripojení patria epoll, kqueue, /dev/poll a select. Na multiplexovanie pripojení sa používa knižnica libuv, ktorá je nadmnožinou knižnice libev na systémoch Unix a knižnice IOCP na IOCP. WindowsKnižnica libeio sa používa na vytvorenie fondu vlákien a c-ares je integrovaná na vykonávanie DNS dotazov v neblokujúcom režime. Všetky blokujúce systémové volania sa vykonávajú v rámci fondu vlákien a potom, podobne ako obslužné rutiny signálov, vracajú svoje výsledky prostredníctvom nepomenovaného kanála.

Spustenie kódu JavaScript je zabezpečené pomocou motora V8 vyvinutého spoločnosťou Google (okrem toho Microsoft vyvíja verziu Node.js s motorom Chakra-Core). Vo svojom jadre je Node.js podobný rámcom Perl AnyEvent, Ruby Event Machine, Python Twisted a implementácii udalostí v Tcl, ale slučka udalostí v Node.js je pred vývojárom skrytá a pripomína spracovanie udalostí vo webovej aplikácii. beží v prehliadači.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster