An buga dandalin Node.js 23.0 tare da tallafin farko don yaren TypeScript

Node.js 23.0.0, dandamali don gudanar da aikace-aikacen cibiyar sadarwa a JavaScript, an fito da shi. Node.js 23.0 an rarraba shi azaman reshe na matsakaici, wanda za'a tallafawa har tsawon watanni 7 (har zuwa Yuni 2025). A cikin kwanaki masu zuwa, za a kammala tabbatar da reshen Node.js 22, wanda zai sami matsayin LTS a ranar 29 ga Oktoba kuma za a tallafa shi har zuwa Afrilu 2027. Taimako ga rassan LTS na baya na Node.js 20.x da 18.x zai ci gaba har zuwa Afrilu 2026 da 2025, bi da bi.

Babban haɓakawa:

  • Ƙara goyan bayan gwaji don TypeScript, wanda ke ba da damar fayyace ma'anar nau'in. Ana kunna goyan baya ta amfani da zaɓuɓɓukan "--experimental-strip-types" da "-- gwaji-nau'ikan canji". A cikin yanayin zaɓi na farko, ana rage aiki tare da TypeScript zuwa share takamaiman nau'in ma'anar harshe (nau'in dubawa ba a yi ba, ana canza lambar zuwa JavaScript mara rubutu). Zaɓin na biyu yana jujjuya wasu abubuwan haɗin rubutu na TypeScript, kamar ƙididdiga da wuraren suna, zuwa lambar JavaScript.
  • An kunna ta tsohuwa shine ikon yin amfani da kiran "buƙata()" don loda kayan aikin JavaScript ESM (Modules ECMAScript) a yanayin aiki tare. Ana amfani da nau'ikan ESM a cikin masu bincike kuma suna maye gurbin CommonJS na musamman ga Node.js. Don yin lodi ta hanyar "buƙata()" a cikin Node.js, dole ne a aiwatar da tsarin ESM tare da aiki tare (ba tare da jira a saman matakin ba).
  • Gano atomatik na samfuran ESM a cikin fayiloli ba tare da ko tare da tsawo na ".js" an ba da shi ba. A baya can, ana ɗaukar irin waɗannan fayilolin azaman samfuran CommonJS sai dai idan an ƙayyade nau'in su a sarari a cikin kunshin.json fayil ɗin da ke cikin wannan jagorar ("nau'in": "module"). A cikin sabon sigar, don fayilolin da ba a kayyade nau'ikan su ba a cikin package.json, da farko yana ƙoƙarin ɗauka azaman tsarin CommonJS, kuma idan wannan ya gaza, to azaman ESM module.
  • An ƙara aiwatar da gwaji masu dacewa da masu bincike An tsara API ɗin Ajiya na Yanar Gizo don adana bayanai masu mahimmanci/daraja masu ɗorewa (aji na localStorage) ko na ɗan lokaci (aji na sessionStorage) na bayanai masu mahimmanci/daraja. Taimakawa tallafin Ajiya na Yanar Gizo yana buƙatar gudanar da API tare da tutar "--experimental-webstorage" da kuma ƙayyade hanyar zuwa fayil ɗin ajiya ta amfani da tutar "--localstorage-file".
  • Ƙara API ɗin gwaji na SQLite don aiki tare da bayanan bayanai ta amfani da yaren tambayar SQL da ma'ajiya bisa laburare na SQLite. Baya ga adana bayanai a cikin fayil akan faifai, ana kuma iya sanya shi cikin ƙwaƙwalwar ajiya ta hanyar tantance “: memory:” maimakon sunan fayil. Ana kuma aiwatar da API ɗin Adanawan Yanar Gizo da aka ambata a saman SQLite, wanda ya haifar da ƙari na SQLite azaman dogaro ga Node.js.
  • An ayyana umarnin “node —run” a tsaye, an tsara shi don gudanar da rubutun da aka ayyana a cikin fayil ɗin kunshin.json.
  • Aiwatar da zaɓi na zaɓi don caching ɗin da aka haɗa lamba akan faifai don hanzarta ƙaddamar da kayayyaki. Ana kunna caching ta hanyar canjin yanayi na NODE_COMPILE_CACHE. Dangane da manufar sa, fasalin yayi kama da kunshin v8-compile-cache, amma ya bambanta da babban aiki da goyan baya ga samfuran ESM.
  • An inganta abin Buffer don haɓaka aikin Buffer.copy() da Buffer.write() hanyoyin.
  • An inganta aikin node:fs module, wanda kuma yana rage yawan kira zuwa lambar C++ yayin aiki.
  • An sabunta injin V8 zuwa sigar 12.9, wanda aka yi amfani da shi a cikin Chromium 129.
  • An cire tallafi don tsarin Windows 32-bit.
  • Saboda gabatarwar fasalulluka da aka ayyana a ma'aunin C++8 a cikin Node.js da injin V20, an ƙara buƙatun sigar mai haɗa GCC. Ginin Node.js yanzu yana buƙatar aƙalla GCC 12.

Ana iya amfani da dandamalin Node.js don tallafawa aikace-aikacen yanar gizo na ɓangaren sabar da kuma ƙirƙirar shirye-shiryen hanyar sadarwa na yau da kullun na abokin ciniki da na ɓangaren sabar. Don faɗaɗa ayyukan aikace-aikacen Node.js, an shirya tarin kayayyaki masu yawa, gami da waɗanda ke aiwatarwa. sabobin da kuma abokan ciniki na HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, kayayyaki don haɗawa da tsarin yanar gizo daban-daban, masu sarrafa WebSocket da Ajax, masu haɗawa zuwa DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injunan samfura, injunan CSS, aiwatar da algorithms na ɓoye bayanai da tsarin izini (OAuth), masu nazarin XML.

Don ɗaukar manyan lambobi na buƙatun layi ɗaya, Node.js yana amfani da samfurin aiwatar da lambar asynchronous dangane da rashin toshewa da sarrafa taron da ma'anar masu karɓar kira. Hanyoyin da aka goyan baya don haɗin haɗin kai sun haɗa da epoll, kqueue, /dev/poll, kuma zaɓi. Don haɗawa da yawa, ana amfani da ɗakin karatu na libuv, wanda shine ƙarawa zuwa libev akan tsarin Unix da zuwa IOCP akan Windows. Ana amfani da ɗakin karatu na libeio don ƙirƙirar tafkin zaren, kuma an haɗa c-ares don yin tambayoyin DNS a cikin yanayin da ba tare da toshewa ba. Ana aiwatar da duk kiran tsarin da ke haifar da toshewa a cikin tafkin zaren sannan kuma, kamar masu sarrafa sigina, su wuce sakamakon aikinsu ta bututun da ba a bayyana sunansa ba.

Ana tabbatar da aiwatar da lambar JavaScript ta hanyar amfani da injin V8 wanda Google ya haɓaka (Bugu da ƙari, Microsoft yana haɓaka sigar Node.js tare da injin Chakra-Core). A ainihinsa, Node.js yayi kama da Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks da kuma aiwatar da abubuwan da suka faru a cikin Tcl, amma madauki na taron a Node.js yana ɓoye daga mai haɓakawa kuma yayi kama da aikin aiki a cikin aikace-aikacen yanar gizo. aiki a browser.

source: budenet.ru

Add a comment