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. servera 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

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster