Iyo Deno JavaScript chikuva inoenderana neNPM modules

Deno 1.28 yakaburitswa, hwaro hwesandboxing JavaScript uye TypeScript application iyo inogona kushandiswa kugadzira server-padivi vanobata. Ipuratifomu inogadzirwa naRyan Dahl, mugadziri weNode.js. Kufanana neNode.js, Deno inoshandisa injini yeV8 JavaScript, inoshandiswawo muChromium-based browsers. Panguva imwecheteyo, Deno haisi forogo yeNode.js, asi ipurojekiti itsva yakagadzirwa kubva pakutanga. Iyo kodhi yeprojekiti yakagoverwa pasi peMIT rezinesi. Zvivakwa zvakagadzirirwa Linux, Windows uye macOS.

Iyo Deno purojekiti yakagadzirwa kuti ipe vashandisi nzvimbo yakachengeteka uye kubvisa zvikanganiso zvekufungidzira muNode.js architecture. Kuti uvandudze kuchengetedzeka, injini yeV8 yakanyorwa muRust, iyo inodzivirira huzhinji hwekusagadzikana hunomuka kubva kune yakaderera-level memory manipulation. Kugadzirisa zvikumbiro nenzira isiri-yekuvhara, iyo Tokio chikuva, zvakare yakanyorwa muRust, inoshandiswa. Tokio inokutendera iwe kuti ugadzire yakakwirira-inoshanda zvikumbiro zvichibva pane inofambiswa nechiitiko chivakwa, ichitsigira akawanda-tambo uye kugadzirisa zvikumbiro zvetiweki mune asynchronous mode.

Shanduko yakakosha mukuburitswa kutsva ndiko kudzikamiswa kwekuenderana nemapakeji akabatwa muNPM repository, iyo inobvumira Deno kushandisa anopfuura mamirioni 1.3 mamodule akagadzirwa eNode.js papuratifomu. Semuyenzaniso, maDeno-based applications zvino anogona kushandisa anorambira ekuwana data modules akadai sePrisma, Mongoose neMySQL, pamwe chete nemafuremu ekumberi akadai seReact uye Vue. Mamwe mamodule eNPM achiri kuramba asingaenderane neDeno, semuenzaniso nekuda kwekusungirirwa kuNode.js-specific environment elements sepa package.json file. Izvo hazvisati zvave kukwanisa kushandisa iyo "deno compile" kuraira neNPM module. Kuburitswa kweramangwana kunoronga kugadzirisa izvi kusapindirana uye zvisingakwanisi.

Tsigiro yeDeno yaimboshandiswa ECMAScript module system uye Webhu API modhi inochengetwa padanho rimwe chete, uye Deno's yakajairika URL-based loading scheme inoshandiswa kuunza NPM modules. Kuti uwane NPM modules, kune yakakosha URL prefix "npm:", inogona kushandiswa nenzira imwechete seyakajairwa Deno modules. Semuyenzaniso, kupinza imwe NPM module, unogona kudoma 'import {choko} kubva"npm:chalk@5";', uye kumhanyisa NPM script kubva pamutsetse wemirairo - "deno run --allow-env --allow -verenga npm: gadzira- vite-yakawedzera.

Kushandisa NPM mapakeji muDeno kuri nyore kupfuura muNode.js, sezvo pasina chikonzero chekuisa mamodules (mamodule anoiswa kana application yatanga kutangwa), hapana package.json faira, uye hapana default node_modules. dhairekitori (mamodule akavharirwa mune yakagovaniswa dhairekitori, asi zvinokwanisika kudzorera maitiro ekare uchishandisa "--node-modules-dir" sarudzo).

NPM-based application inochengetedza kugona kushandisa Deno's access control, kuzviparadzanisa nevamwe, uye kuchengetedza-sensitive advanced kugona. Kurwisa kurwiswa kuburikidza nekutsamira kunopokana, Deno inovhara nekukasira kuedza kwese kuwana mukana kune sisitimu kubva kune vanovimba uye inoratidza yambiro nezve matambudziko akaonekwa. Semuenzaniso, kana module ichiedza kuwana mukana wekunyora ku /usr/bin/, chikumbiro chekusimbisa chekushanda uku chicharatidzwa: deno run npm:install-malware ⚠️ β”Œ Deno inokumbira kunyora kupinda ku/usr/bin/. β”œ Yakakumbirwa ne `install-malware` β”œ Mhanya zvakare ne --bvumira-nyora kuti upfuure ichi kukurumidza. β”” Kubvumira? [y/n] (y = hongu, bvumira; n = kwete, ramba) >

Kuvandudza kusiri kweNPM mushanduro itsva kunosanganisira kuvandudza injini yeV8 kuburitsa 10.9, kuona mafaera ane makiyi otomatiki, kudzikamiswa kweDeno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() uye Deno APIs. .uid(), tichiwedzera isina kugadzikana API Deno.Command() yekushandisa mirairo (kutsiva kwepasi rose kweDeno.spawn, Deno.spawnSync uye Deno.spawnChild).

Zvinonyanya kukosha zveDeno:

  • Chengetedzo-yakatarisana default configuration. Kuwana faira, networking, uye kuwana kune zvakatipoteredza zvinosiyana zvinodzimwa nekusarudzika uye zvinofanirwa kugoneswa zvakajeka. Zvishandiso nekusarudzika zvinomhanya munzvimbo dziri dzoga dzebhokisi rejecha uye haugone kuwana masimba ehurongwa pasina kupa mvumo dzakajeka;
  • Yakavakirwa-mukati rutsigiro rweTypeScript kupfuura JavaScript. Kutarisa mhando uye chizvarwa cheJavaScript, iyo yakajairwa TypeScript compiler inoshandiswa, iyo inotungamira kudonha kwekuita kana ichienzaniswa neJavaScript parsing muV8;
  • Runtime inouya iri muchimiro cheimwe chete-ine-ine inogadziriswa faira ("deno"). Kuti umhanye maapplication uchishandisa Deno, unongoda kudhawunirodha faira rimwe chete rinogoneka papuratifomu yako, ingangoita 30 MB muhukuru, iyo isina zvekunze zvinotsamira uye haidi chero yakakosha kuisirwa pane system. Uyezve, deno haisi monolithic application, asi muunganidzwa weRust crate mapakeji (deno_core, rusty_v8), inogona kushandiswa zvakasiyana;
  • Paunenge uchitanga chirongwa, pamwe nekurodha mamodule, unogona kushandisa URL kero. Semuenzaniso, kuti umhanye chirongwa chekugamuchira.js, unogona kushandisa murairo "deno https://deno.land/std/examples/welcome.js". Kodhi kubva kune zvekunze zviwanikwa inotorwa uye yakavharirwa pane yemuno sisitimu, asi haimbofa yakagadziridzwa otomatiki (kugadzirisa kunoda kumhanyisa application ne "--reload" mureza);
  • Kunyatsogadzirisa zvikumbiro zvetiweki kuburikidza neHTTP mumashandisirwo; chikuva chakagadzirirwa kugadzira yakakwirira-inoshanda network application;
  • Iko kugona kugadzira universal web applications izvo zvinogona kuitwa zvese muDeno uye mune yenguva dzose web browser;
  • Kuvapo kweiyo yakajairwa seti yemamodules, kushandiswa kwayo kusingadi kusungirirwa kune zvekunze zvinotsamira. Mamodules kubva muunganidzwa wakajairwa akawana imwe ongororo uye kuenderana kuyedzwa;
  • Pamusoro penguva yekumhanya, iyo Deno chikuva inoitawo semaneja wepakeji uye inobvumidza iwe kuti uwane mamodule ne URL mukati mekodhi. Semuenzaniso, kurodha module, unogona kutsanangura mune kodhi "import * selog kubva "https://deno.land/std/log/mod.ts". Mafaira akatorwa kubva kune ekunze maseva kuburikidza neURL akachengetwa. Kusunga kumamodule shanduro kunotemwa nekudoma nhamba dzevhezheni mukati meURL, semuenzaniso, "https://unpkg.com/[email inodzivirirwa]/dist/liltest.js";
  • Iyo dhizaini inosanganisira yakabatanidzwa kutsamira yekuongorora system (iyo "deno info" command) uye utility yekodhi fomati (deno fmt);
  • Zvese zvinyorwa zvekushandisa zvinogona kusanganiswa kuita imwe JavaScript faira.

Source: opennet.ru

Voeg