Sethala sa Deno JavaScript se tsamaisana le li-module tsa NPM

Deno 1.28 e lokollotsoe, moralo oa sandboxing JavaScript le lits'ebetso tsa TypeScript tse ka sebelisoang ho theha li-server-side handlers. Sethala se hlahisoa ke Ryan Dahl, moetsi oa Node.js. Joalo ka Node.js, Deno e sebelisa enjine ea JavaScript ea V8, e sebelisoang hape ho libatli tse thehiloeng ho Chromium. Ka nako e ts'oanang, Deno ha se fereko ea Node.js, empa ke morero o mocha o entsoeng ho tloha qalong. Khoutu ea projeke e ajoa tlasa laesense ea MIT. Mehaho e lokiselitsoe Linux, Windows le macOS.

Morero oa Deno o bōpiloe ho fa basebelisi tikoloho e sireletsehileng haholoanyane le ho felisa liphoso tsa likhopolo mohahong oa Node.js. Ho ntlafatsa ts'ireletso, enjene ea V8 e ngotsoe ka Rust, e qobang bofokoli bo bongata bo hlahang ka lebaka la ho qhekella mohopolo o tlase. Ho sebetsana le likopo ka mokhoa o sa thibeleng, sethala sa Tokio, se ngotsoeng hape ka Rust, se sebelisoa. Tokio e u lumella ho etsa lits'ebetso tse sebetsang hantle tse ipapisitseng le meaho e tsamaisoang ke liketsahalo, e ts'ehetsang likhoele tse ngata le ho sebetsana le likopo tsa marang-rang ka mokhoa oa asynchronous.

Phetoho ea bohlokoa tokollong e ncha ke ho tsitsisa ho lumellana le liphutheloana tse tšoaretsoeng polokelong ea NPM, e lumellang Deno ho sebelisa li-module tse fetang limilione tse 1.3 tse entsoeng bakeng sa sethala sa Node.js. Mohlala, lits'ebetso tse thehiloeng ho Deno joale li ka sebelisa li-module tse phehellang tsa phihlello ea data joalo ka Prisma, Mongoose le MySQL, hammoho le liforeimi tse ka pele tse kang React le Vue. Li-module tse ling tsa NPM li ntse li lula li sa lumellane le Deno, ka mohlala ka lebaka la ho tlamahanngoa le likarolo tse khethehileng tsa tikoloho tsa Node.js tse kang faele ea package.json. Hape ha ho so khonehe ho sebelisa taelo ea "deno compile" ka li-module tsa NPM. Litokollo tsa nakong e tlang li rera ho rarolla ho se lumellane le mefokolo ena.

Ts'ehetso bakeng sa sistimi ea ECMAScript e neng e sebelisoa pele e neng e sebelisoa le mofuta oa Web API e bolokoa maemong a tšoanang, 'me leano le tloaelehileng la ho jarolla la Deno le thehiloeng ho URL le sebelisoa ho kenya limmojule tsa NPM. Ho fihlella li-module tsa NPM, ho na le prefix e khethehileng ea URL "npm:", e ka sebelisoang ka mokhoa o ts'oanang le li-module tsa Deno tse tloaelehileng. Mohlala, ho kenya mojule oa NPM, o ka hlakisa 'import { tjhoko} ho tloha "npm:chalk@5";', le ho tsamaisa mongolo oa NPM ho tsoa moleng oa taelo - "deno run --allow-env --allow - bala npm:create-vite-extra.

Ho sebelisa liphutheloana tsa NPM ho Deno ho bonolo haholo ho feta ho Node.js, kaha ha ho hlokahale ho kenya li-modules esale pele (li-module li kenngoa ha kopo e qala ho qala), ha ho na faele ea package.json, 'me ha ho na node_modules ea kamehla. directory (li-module li bolokiloe bukeng e arolelanoang, empa hoa khoneha ho khutlisa boitšoaro ba khale u sebelisa khetho ea "-node-modules-dir").

Lisebelisoa tse thehiloeng ho NPM li boloka bokhoni ba ho sebelisa taolo ea phihlello ea Deno, ho itšehla thajana, le bokhoni bo tsoetseng pele bo sa tsotelleng ts'ireletso. Ho loants'a litlhaselo ka ho its'etleha ho belaetsang, Deno e thibela ka boithatelo liteko tsohle tsa ho fihlella sistimi ho tsoa ho ba its'etlehileng mme e bonts'a temoso mabapi le mathata a fumanoeng. Mohlala, ha mojule o leka ho fumana phihlello ea ho ngola ho /usr/bin/, kopo ea netefatso ea ts'ebetso ena e tla hlahisoa: deno run npm:install-malware ⚠️ ┌ Deno e kopa phihlello ea ho ngola ho /usr/bin/. ├ E kopiloe ke `install-malware` ├ Matha hape ka --allow-write ho tlola taelo ena. └ Lumella? [y/n] (y = e, lumella; n = che, latola) >

Lintlafatso tseo e seng tsa NPM mofuteng o mocha li kenyelletsa ho ntlafatsa enjene ea V8 ho lokolla 10.9, ho iphumanela lifaele ka liloko, ho tsitsisa Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() le Deno APIs. .uid(), ho kenya API e ncha e sa tsitsang Deno.Command() bakeng sa ho tsamaisa litaelo (ho nkela sebaka sa Deno.spawn, Deno.spawnSync le Deno.spawnChild).

Lintlha tse ka sehloohong tsa Deno:

  • Tlhophiso ea kamehla e shebaneng le ts'ireletso. Phihlello ea faele, marang-rang, le phihlello ea mefuta-futa ea tikoloho li koaletsoe ka mokhoa oa kamehla 'me li tlameha ho lumelloa ka mokhoa o hlakileng. Likopo ka mokhoa o ikhethileng li sebetsa libakeng tse ka thoko tsa sandbox mme ha li khone ho fihlella bokhoni ba sistimi ntle le ho fana ka tumello e hlakileng;
  • Ts'ehetso e hahelletsoeng bakeng sa TypeScript e fetang JavaScript. Bakeng sa ho hlahloba mofuta le tlhahiso ea JavaScript, ho sebelisoa moqapi o tloaelehileng oa TypeScript, e leng se lebisang ho theoha ha ts'ebetso ha ho bapisoa le JavaScript parsing ho V8;
  • Runtime e tla ka mokhoa oa faele e le 'ngoe e ka phethahatsoang e ikemetseng ("deno"). Ho tsamaisa lits'ebetso u sebelisa Deno, o hloka feela ho khoasolla faele e le 'ngoe e ka phethisoang sethaleng sa hau, e ka bang 30 MB ka boholo, e se nang litšepe tsa kantle mme e sa hloke ho kengoa ho khethehileng ho sistimi. Ho feta moo, deno ha se kopo ea monolithic, empa ke pokello ea liphutheloana tsa Rust crate (deno_core, rusty_v8), tse ka sebelisoang ka thoko;
  • Ha u qala lenaneo, hammoho le ho kenya li-module, u ka sebelisa aterese ea URL. Ka mohlala, ho tsamaisa lenaneo la welcome.js, u ka sebelisa taelo "deno https://deno.land/std/examples/welcome.js". Khoutu e tsoang mehloling ea kantle e jarollwa le ho bolokoa ho sistimi ea lehae, empa ha ho mohla e nchafatsoang ka bo eona (ho nchafatsa ho hloka ho sebelisa ts'ebeliso ka ho hlaka ka "--reload" folakha);
  • Ts'ebetso e nepahetseng ea likopo tsa marang-rang ka HTTP lits'ebetsong; sethala se etselitsoe ho theha lits'ebetso tsa marang-rang tse sebetsang hantle;
  • Bokhoni ba ho theha lits'ebetso tsa marang-rang tse ka etsoang ka bobeli ho Deno le ho sebatli se tloaelehileng sa webo;
  • Ho ba teng ha li-module tse tloaelehileng, tseo tšebeliso ea tsona e sa hlokeng ho tlama ho itšetlehile ka ntle. Li-module tse tsoang pokellong e tloaelehileng li entsoe tlhahlobo ea tlatsetso le tlhahlobo ea ho lumellana;
  • Ntle le nako ea ho sebetsa, sethala sa Deno se boetse se sebetsa e le mookameli oa sephutheloana mme se u lumella ho fihlella li-module ka URL ka har'a khoutu. Mohlala, ho kenya mojule, o ka hlakisa khoutu "import * joalo ka log ho tsoa ho "https://deno.land/std/log/mod.ts". Lifaele tse jarollotsoeng ho tsoa ho li-server tsa kantle ka URL li bolokiloe. Ho tlamella liphetolelo tsa mojule ho khethoa ka ho hlakisa linomoro tsa mofuta ka har'a URL, mohlala, "https://unpkg.com/[imeile e sirelelitsoe]/dist/liltest.js";
  • Sebopeho se kenyelletsa mokhoa o kopanetsoeng oa tlhahlobo ea ho itšetleha (taelo ea "deno info") le thuso bakeng sa ho hlophisa khoutu (deno fmt);
  • Lingoliloeng tsohle tsa kopo li ka kopanngoa hore e be faele e le 'ngoe ea JavaScript.

Source: opennet.ru

Eketsa ka tlhaloso