JavaScript iqonga Node.js 22.0.0 ekhoyo

I-Node.js 22.0 yakhululwa, iqonga lokuqhuba usetyenziso lwenethiwekhi kwiJavaScript. I-Node.js 22.0 ihlelwa njengesebe lenkxaso yexesha elide, kodwa le meko iya kunikwa kuphela ngo-Oktobha, emva kokuzinziswa. I-Node.js 22.x iya kuxhaswa kude kube yi-30 ka-Epreli 2027. Ukugcinwa kwesebe langaphambili le-LTS le-Node.js 20.x kuya kuhlala kude kube ngu-Apreli 2026, kunye nonyaka ongaphambi kwesebe le-LTS lokugqibela 18.x kude kube ngu-Apreli 2025. Isebe le-Node.js 21.x liza kuyekwa ngoJuni 1, 2024.

Uphuculo oluphambili:

  • Injini ye-V8 ihlaziywe kwinguqulo ye-12.4, esetyenziswe kwi-Chromium 124. Phakathi kweenguqu xa kuthelekiswa nesebe le-Node.js 21, elisebenzise i-injini ye-V8 11.8), kuphawuliwe:
    • Inkxaso yolwandiso lweWasmGC, elenza lula ukuhanjiswa kweenkqubo ezibhalwe ngeelwimi zenkqubo ezisebenzisa umqokeleli wenkunkuma (Kotlin, PHP, Java, njalo njalo) kwiWebAssembly. I-WasmGC yongeza iintlobo ezintsha zezakhiwo kunye noluhlu olunokusebenzisa ulwabiwo lwememori olungenamgca.
    • Inkxaso ye-Array.fromAsync() indlela, ebuyisela ngokulandelelana umzekelo omtsha we-Array into ekhutshelweyo kwi-array-like, iterable okanye i-async iterable into.
    • Inkxaso yeendlela zokuphinda ezinjenge .map, .filter, .fumana, .thatha, .drop, .forEach kunye .nciphisa.
    • Inkxaso yeSeta into echaza ingqokelela yamaxabiso kwaye inikezela ngeendlela eziphumeza imisebenzi eqhelekileyo, efana nokudibana, umanyano, umahluko kunye nokudibanisa.
  • I-Maglev yokuphucula i-JIT compiler yenziwe ngokungagqibekanga, ejoliswe ekuveliseni ngokukhawuleza ikhowudi yomatshini ophezulu wokusetyenziswa kwekhowudi yeJavaScript esetyenziswa kakhulu. Ukuvumela i-Maglev ikwazi ukukhawuleza ngokukhawuleza izicelo ze-CLI ezifutshane ezingenzi imisebenzi yexesha elide, umzekelo, ixesha lokugqiba uvavanyo lwe-Jetstrea liyancipha nge-7.5%, kunye novavanyo lwe-Speedometer nge-5%.
  • Ukusebenza ngeestreams kuye kwakhawuleziswa ngokunyusa ixabiso le-highWaterMark ekhethwayo ukusuka kwi-16 KB ukuya kwi-65 KB (ichaza umda onokuthi urekhodishwe lugcinwe). Utshintsho lukhokelela ekusetyenzisweni kwememori okwandisiweyo, ke usetyenziso oluyilelwe ukusebenza kwi-RAM elinganiselweyo lunokufuna ukubuyela kwixabiso elidala ngokufowuna kwi-setDefaultHighWaterMark ().
  • Ukusebenza okuphuculweyo kokulanda () kunye novavanyo lwe-APIs yembaleki ngokwenza i-AbortSignal instantiation isebenze ngakumbi. Ukusebenza kwee-APIs ezinxulumene nomsebenzi ohambelanayo kunye neenkqubo zefayile ziphuculwe.
  • Uphawu lovavanyo lunikiwe lokusebenzisa i-"require()" ukufowuna ukulayisha iimodyuli ze-JavaScript ESM (Iimodyuli ze-ECMAScript) kwimowudi yongqamaniso. Iimodyuli ze-ESM zisetyenziswa kwiziphequluli kwaye zibuyisela iimodyuli ze-CommonJS ezikhethekileyo kwi-Node.js. Ukulayisha nge "require()", imodyuli yeESM mayiphunyezwe kwimowudi ehambelanayo (ngaphandle kokulinda kwinqanaba eliphezulu). Inkxaso yenziwe ngeflegi "--yovavanyo-idinga-modyuli".
  • Kongezwe isakhono sokulinga ukusebenzisa izikripthi ezichazwe kwiphakheji.json ifayile usebenzisa "--run" umyalelo "
  • Umyalelo othi "node -wotshi" uhanjiswe kudidi oluzinzileyo kunye nokuphunyezwa kwemowudi yokubukela eqinisekisa ukuba inkqubo iqalwa kwakhona xa ifayile ethunyelwa ngaphandle itshintsha (umzekelo, ukuba "i-node -watch index.js" iphunyeziwe. inkqubo iya kuqalwa kwakhona ngokuzenzekelayo xa index.js itshintsha).
  • Ukuphunyezwa kwendabuko ye-WebSocket API iye yazinziswa, ivumela iWebSocket ukuba isetyenziswe kwimodi yomxhasi ngaphandle kokufaka ukuxhomekeka okongeziweyo.
  • Inkxaso eyongeziweyo ye-Navigator API.
  • I-Webstreams API yongeze inkxaso yefomathi yoxinzelelo lwe-deflate-raw.
  • Iglobhu eyongeziweyo kunye neglobSync imisebenzi kwinode:fsmodule yokuthelekisa iindlela zefayile.
  • Ukuphathwa okuphuculweyo kwezitaki ze-IPv6 ezinobumbeko. Iphunyezwe i-algorithm yeebhola zamehlo ezonwabileyo ukuze ubuyiselwe umva ngokukhawuleza kwimeko yeengxaki nge-IPv6 yokusebenza.
  • Util API iyekisiwe.
  • Iinguqulelo ezihlaziyiweyo zokuxhomekeka: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson ukuya ku-3.8.0, ada 2.7.7 kunye undici 6.6.0. .

Iqonga leNode.js lingasetyenziselwa zombini ukugcinwa kweseva yezicelo zeWebhu kunye nokudala umxhasi oqhelekileyo kunye neenkqubo zenethiwekhi zeseva. Ukwandisa ukusebenza kwezicelo zeNode.js, ingqokelela enkulu yeemodyuli ilungisiwe, apho unokufumana iimodyuli kunye nokuphunyezwa kweHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 iiseva kunye nabaxhasi, iimodyuli zokudibanisa. kunye nezakhelo ezahlukeneyo zewebhu, i-WebSocket kunye ne-Ajax abaphathi , izixhumi ze-DBMS (MySQL, PostgreSQL, SQLite, MongoDB), ii-injini ze-templates, ii-injini ze-CSS, ukuphunyezwa kwe-crypto algorithms kunye neenkqubo zokugunyazwa (OAuth), ii-XML parsers.

Ukujongana namanani amakhulu ezicelo ezifanayo, iNode.js isebenzisa imodeli yokwenziwa kwekhowudi engahambelaniyo esekwe kusingathinteli ukusetyenzwa kwesiganeko kunye nokuchaza abaphathi bokufowuna. Iindlela ezixhaswayo zoqhagamshelo lwe-multiplexing ziquka i-epoll, i-kqueue, /dev/poll, kwaye ukhethe. Ukuphinda-phinda uqhagamshelo, ilayibrari ye-libuv iyasetyenziswa, eyongezo kwi-libev kwiinkqubo ze-Unix nakwi-IOCP kwi-Windows. Ilayibrari ye-libeio isetyenziselwa ukudala i-pool pool, kwaye i-c-ares idityaniswe ukwenza imibuzo ye-DNS kwimo engathinteliyo. Zonke iifowuni zesixokelelwano ezibangela ukubhloka ziyenziwa ngaphakathi kwiqula lemisonto emva koko, njengabaphangi beempawu, bagqithise isiphumo somsebenzi wabo ngombhobho ongachazwanga ngagama.

Ukuphunyezwa kwekhowudi yeJavaScript kuqinisekiswa ngokusetyenziswa kwe-injini ye-V8 ephuhliswe yiGoogle (ukongeza, iMicrosoft iphuhlisa inguqulelo yeNode.js nge-injini ye-Chakra-Core). Kwisiseko sayo, i-Node.js ifana nePerl AnyEvent, i-Ruby Event Machine, i-Python Twisted frameworks kunye nokuphunyezwa kweziganeko kwi-Tcl, kodwa i-loop yesiganeko kwi-Node.js ifihliwe kumthuthukisi kwaye ifana nokuqhutyelwa kwesiganeko kwisicelo sewebhu. isebenza kwibhrawuza.

umthombo: opennet.ru

Yongeza izimvo