Platforma Node.js 23.0 është publikuar me mbështetje fillestare për gjuhën TypeScript

Lëshimi i Node.js 23.0.0, platforma për ekzekutimin e aplikacioneve rrjetore në gjuhën JavaScript. Node.js 23.0 klasifikohet si degë ndërmjetëse, e cila mbështetet për 7 muaj (deri në qershor 2025). Në ditët në vijim do të përfundojë stabilizimi i degës Node.js 22, e cila më 29 tetor do të marrë statusin LTS dhe do të mbështetet deri në prill 2027. Mbështetje për degët e kaluara LTS Node.js 20.x dhe 18.x do të vazhdojë deri në prill 2026 dhe 2025 respektivisht.

Përmirësimet kryesore:

  • U shtua mbështetje eksperimentale për gjuhën TypeScript, që lejon përcaktimin e qartë të tipeve. Mbështetja aktivizohet përmes opsioneve «—experimental-strip-types» dhe «—experimental-transform-types». Me opsionin e parë, puna me TypeScript reduktohet në pastrimin e përcaktimeve të tipave specifike për këtë gjuhë (kontrolli i tipeve nuk bëhet, kodi thjesht konvertohet në JavaScript pa tipe). Opsioni i dytë realizon transformimin në kod JavaScript të disa elementeve të sintaksës TypeScript, si enumerat (enum) dhe hapësirat e emrave (namespace).
  • Aktivizimi i thirrjes «require()» për ngarkimin e moduleve JavaScript ESM (ECMAScript Modules) në mënyrë përpunuese, është në dispozitë nga e drejta. Modul ESM përdoret në shfletues dhe zëvendëson modulet CommonJS, specifike për Node.js. Për ngarkim përmes «require()» në Node.js, moduli ESM duhet të ekzekutohet në mënyrë përpunuese (pa await në nivelin më të lartë).
  • Identifikimi automatik i moduleve ESM në skedarët pa zgjerim ose me zgjerim «.js». Më parë, skedarët e tillë trajtoheshin si modulet CommonJS, nëse në skedarin package.json të vendosur në të njëjtin katalog nuk ishte e specifikuar qartë tipi i tyre («type»: «module»). Në versionin e ri, për skedarët e cilësisë së paidentifikuar në package.json, fillimisht bëhet një përpjekje për ngarkim si modul CommonJS, dhe nëse kjo dështon, si modul ESM.
  • Implementimi eksperimental i përputhshëm me shfletuesit API Web Storage, e destinuar për ruajtjen e të dhënave në formën çelës/vlerë në mënyrë të përhershme (klasa localStorage) ose të përkohshme (klasa sessionStorage). Për të përfshirë mbështetje për Web Storage, kërkohet ekzekutimi me flagun «—experimental-webstorage» dhe specifikimi i rrugës drejt skedarit të ruajtjes përmes flagut «—localstorage-file».
  • U shtua API eksperimentale SQLite për punën me bazat e të dhënave, duke përdorur gjuhën e pyetjeve SQL dhe ruajtjen mbi bazën e bibliotekës SQLite. Përveç ruajtjes së bazës së të dhënave në një skedar në disk, ajo gjithashtu mund të vendoset në kujtesë, duke specifikuar në vend të emrit të skedarit «:memory:». API mësipër për Web Storage është realizuar gjithashtu mbi SQLite, çka ka çuar në shtimin e SQLite në numrin e varësive për Node.js.
  • U shpall në mënyrë të stabilizuar komanda «node —run», e destinuar për ekzekutimin e skenareve të përcaktuara në skedarin package.json.
  • Mbështetje opsionale për caching të kodit të kompiluar në disk për të përshpejtuar ndjeshëm nisin e moduleve është realizuar. Aktivizimi i caching bëhet përmes variablit të mjedisit NODE_COMPILE_CACHE. Kjo mundësi e ngjan paketës v8-compile-cache, por ofron performancë më të lartë dhe mbështetje për modulet ESM.
  • Optimizimi i objektit Buffer është realizuar, duke lejuar që të rritet ndjeshëm performanca e metodave Buffer.copy() dhe Buffer.write().
  • Performanca e modulit node:fs është rritur, ndërsa numri i thirrjeve të kodit në C++ gjatë funksionimit është reduktuar.
  • Motori V8 është përditësuar në versionin 12.9, i përdorur në Chromium 129.
  • U hoq mbështetja për sistemet 32-bit me OS Windows.
  • Për shkak të përfshirjes në Node.js dhe motorin V8 të mundësive të përcaktuara në standardin C++20, janë rritur kërkesat për versionin e kompilatorit GCC. Tani, për ndërtimin e Node.js kërkohet të paktën versioni GCC 12.

Platforma Node.js mund të përdoret si për mbështetje të serverëve të aplikacioneve Web, ashtu edhe për të krijuar programe të zakonshme klients-server të rrjeteve. Për të zgjeruar funksionalitetin e aplikacioneve për Node.js është përgatitur një koleksion i madh modulash, ku mund të gjeni module me realizim. serverëve dhe klientë HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module për integrim me korniza të ndryshme web, procesorë WebSocket dhe Ajax, lidhës për DB (MySQL, PostgreSQL, SQLite, MongoDB), motorë për modelim, CSS, realizime të algoritmeve kriptografikë dhe sistemeve të autorizimit (OAuth), parserë XML.

Për të siguruar përpunimin e një numri të madh kërkesash paralele, Node.js përdor një model asinkron të ekzekutimit të kodit, të bazuar në përpunimin e ngjarjeve në mënyrë jo bllokuese dhe në përcaktimin e callback-handlera. Si metoda të shumëfishimit të lidhjeve mbështeten metoda si epoll, kqueue, /dev/poll dhe select. Për shumëfishimin e lidhjeve përdoret biblioteka libuv, e cila është një shtresë mbi libev në sistemet Unix dhe mbi IOCP në Windows. Për krijimin e një grupi të thjeshtësive (thread pool) përdoret biblioteka libeio, dhe për ekzekutimin e kërkesave DNS në mënyrë jo bllokuese është integruar c-ares. Të gjitha thirrjet sistemike që shkaktojnë bllokimin ekzekutohen brenda grupit të thjeshtësive dhe më pas, si dhe menaxherët e sinjaleve, transmetojnë rezultatin e punës së tyre prapa përmes një kanali pa emër (pipe).

Ekzekutimi i kodit JavaScript sigurohet përmes aktivizimit të motorit V8 të zhvilluar nga Google (për më tepër, Microsoft po zhvillon një variant Node.js me motorin Chakra-Core). Në thelb, Node.js është i ngjashëm me framework-et Perl AnyEvent, Ruby Event Machine, Python Twisted dhe implementimin e ngjarjeve në Tcl, por cikli i përpunimit të ngjarjeve (event loop) në Node.js është i fshehur nga zhvilluesi dhe i ngjan përpunimit të ngjarjeve në një aplikacion web që funksionon në shfletues.

Burimi: opennet.ru

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster