O le Deno JavaScript platform e fetaui ma modules NPM

Deno 1.28 ua faʻasaʻolotoina, o se faʻavae mo le sandboxing JavaScript ma TypeScript talosaga e mafai ona faʻaogaina e fausia ai tagata faʻapipiʻi itu. O le faʻavae e fausia e Ryan Dahl, o le na faia le Node.js. E pei o Node.js, e fa'aaoga e Deno le masini V8 JavaScript, lea e fa'aogaina fo'i i su'esu'ega fa'avae Chromium. I le taimi lava e tasi, Deno e le o se tui o Node.js, ae o se galuega fou na faia mai le sasa. Ole fa'ailoga ole poloketi o lo'o tufatufaina i lalo ole laisene MIT. Fausia ua saunia mo Linux, Windows ma macOS.

O le Deno poloketi na faia e tuʻuina atu ai i tagata faʻaoga se siosiomaga sili atu ona malupuipuia ma faʻaumatia manatu sese i le fausaga Node.js. Ina ia faʻaleleia le saogalemu, o le V8 afi o loʻo tusia i Rust, lea e aloese ai mai le tele o faʻafitauli e mafua mai i le faʻaogaina o mafaufauga maualalo. Ina ia faʻagasolo talosaga i se faiga e le poloka, o le Tokio platform, na tusia foi i le Rust, e faʻaaogaina. Tokio e mafai ai ona e faia ni talosaga maualuga e faʻavae i luga o faʻataʻitaʻiga faʻataʻitaʻiga, lagolagoina le tele-threading ma le faʻaogaina o fesoʻotaʻiga talosaga ile asynchronous mode.

O se suiga autu i le faʻasalalauga fou o le faʻamautuina lea o fesoʻotaʻiga ma afifi o loʻo faʻapipiʻiina i le fale teu oloa NPM, lea e mafai ai e Deno ona faʻaogaina le sili atu i le 1.3 miliona modules na faia mo le Node.js platform. Mo se faʻataʻitaʻiga, o talosaga faʻavae Deno e mafai nei ona faʻaogaina faʻaogaina faʻamaumauga faifaipea e pei o Prisma, Mongoose ma MySQL, faʻapea foʻi ma faʻasologa pito i luma e pei ole React ma Vue. O nisi NPM modules o loʻo tumau pea le le ogatasi ma Deno, mo se faʻataʻitaʻiga ona o fusi i elemene siosiomaga faʻapitoa Node.js e pei o le faila package.json. E le'o mafai fo'i ona fa'aoga le fa'atonuga "deno compile" fa'atasi ma fa'aoga NPM. O fa'asalalauga i le lumana'i o lo'o fuafua e foia ai nei fa'aletonu ma tapula'a.

Lagolago mo Deno's fa'aaoga muamua ECMAScript module system ma Web API fa'ata'ita'iga o lo'o fa'atumauina i le tulaga tutusa, ma fa'aoga masani a Deno fa'avae URL fa'apipi'iina e fa'aulufale mai NPM modules. Ina ia maua le NPM modules, o loʻo i ai se URL faʻapitoa "npm:", lea e mafai ona faʻaogaina i le auala tutusa e pei o faʻaoga masani a Deno. Mo se fa'ata'ita'iga, e fa'aulufale mai se module NPM, e mafai ona e fa'ama'oti mai le 'import { chalk } mai le "npm: chalk@5";', ma fa'agasolo se NPM script mai le laina fa'atonu - "deno run --allow-env --allow -faitau npm: fai- vite-faaopoopo."

O le faʻaaogaina o afifi NPM i Deno e sili atu le faigofie nai lo le Node.js, talu ai e leai se manaʻoga e faʻapipiʻi muamua modules (faʻapipiʻi modules pe a faʻalauiloa muamua le talosaga), e leai se faila package.json, ma e leai se faaletonu node_modules directory (modules o loʻo teuina i totonu o le lisi faʻasoa, ae e mafai ona toe faʻafoʻi le amio tuai e faʻaaoga ai le "--node-modules-dir" filifiliga).

O talosaga fa'avae NPM o lo'o fa'atumauina le mafai e fa'aoga ai le fa'aogaina o le fa'atonuga a Deno, fa'aesea, ma le saogalemu-maaleale agava'a alualu i luma. Ina ia tetee atu i osofaʻiga e ala i faʻalagolago faʻalagolago, Deno poloka e ala i le le mafai ona taumafai uma e maua le avanoa i le faiga mai faʻalagolago ma faʻaalia se lapataiga e uiga i faʻafitauli ua iloa. Mo se faʻataʻitaʻiga, pe a taumafai se module e maua le avanoa tusitusi i /usr/bin/, o le a faʻaalia se talosaga faʻamaonia mo lenei gaioiga: deno run npm:install-malware ⚠️ ┌ Deno requests write access to /usr/bin/. ├ Talosagaina e le `install-malware` ├ Toe tamo'e ma le --allow-write e pasi ai lenei fa'atonuga. └ Fa'ataga? [y/n] (y = ioe, faataga; n = leai, faafitia) >

Non-NPM faʻaleleia i le lomiga fou e aofia ai le faʻafouina o le V8 afi e faʻasaʻo ai le 10.9, otometi suʻesuʻega o faila ma loka, faʻamautuina o le Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ma Deno APIs. .uid(), faaopoopo le fou le mautu API Deno.Command() mo le faagaoioia o poloaiga (suiga lautele mo Deno.spawn, Deno.spawnSync ma Deno.spawnChild).

Autu autu o Deno:

  • Fa'atonuga fa'aletonu e fa'atatau i le saogalemu. O avanoa faila, upegatafa'ilagi, ma le avanoa i fesuiaiga o le siosiomaga e le mafai ona faʻaogaina ma e tatau ona faʻaalia manino. Talosaga e le mafai ona fa'agasolo i totonu o si'osi'omaga pu'upu'u oneone ma e le mafai ona fa'aogaina le gafatia o faiga e aunoa ma le tu'uina atu o fa'atagaga manino;
  • Lagolago fau-i totonu mo TypeScript i tua atu o le JavaScript. Mo le siakiina o ituaiga ma le gaosiga o le JavaScript, o loʻo faʻaogaina le tuʻufaʻatasiga TypeScript, lea e oʻo atu ai i le pa'ū o le faʻatinoga pe a faʻatusatusa i le JavaScript parsing i le V8;
  • Taimi fa'agasolo e sau i foliga o se faila e tasi e mafai ona fa'atinoina ("deno"). Mo le faʻaogaina o talosaga e faʻaaoga ai Deno, naʻo lou manaʻomia e sii mai se faila faila mo lau faʻavae, e tusa ma le 30 MB le tele, e leai ni faʻalagolago i fafo ma e le manaʻomia se faʻapipiʻi faʻapitoa i luga o le polokalama. E le gata i lea, o le deno e le o se talosaga monolithic, ae o se aofaʻiga o pusa Rust crate (deno_core, rusty_v8), lea e mafai ona faʻaaogaina eseese;
  • A amata le polokalame, faʻapea foʻi ma le utaina o modules, e mafai ona e faʻaogaina le tuatusi URL. Mo se faʻataʻitaʻiga, e faʻatautaia le polokalama welcome.js, e mafai ona e faʻaogaina le poloaiga "deno https://deno.land/std/examples/welcome.js". Fa'ailoga mai punaoa i fafo e sii mai ma teu i luga o le faiga fa'apitonu'u, ae e le otometi lava ona fa'afouina (fa'afouina e mana'omia le fa'atinoina o le talosaga ma le fu'a "--reload");
  • Fa'atonuga lelei o talosaga feso'ota'iga e ala i le HTTP i talosaga, o le fa'avae ua mamanuina mo le fa'atupuina o feso'ota'iga feso'ota'iga maualuga;
  • Le mafaia ona fatuina ni upega tafaʻilagi lautele e mafai ona faʻatinoina uma i Deno ma i totonu o se upega tafaʻilagi masani;
  • O le i ai o se seti masani o modules, o le faʻaaogaina e le manaʻomia ai le fusifusia i faʻalagolago i fafo. Module mai le aoina masani ua faia su'etusi faaopoopo ma su'ega fetaui;
  • I le faʻaopoopoga i le taʻavale, o le Deno platform e galue foi o se pule o pusa ma faʻatagaina oe e faʻaogaina modules e URL i totonu o le code. Mo se faʻataʻitaʻiga, e faʻapipiʻi se module, e mafai ona e faʻamaonia i le code "import * as log from "https://deno.land/std/log/mod.ts". O faila na sii mai i fafo e ala i le URL o loʻo faʻaogaina. O le fusifusia i faʻasologa o module e faʻamoemoeina e ala i le faʻamaonia o numera numera i totonu o le URL, mo se faʻataʻitaʻiga, "https://unpkg.com/[imeli puipuia]/dist/liltest.js";
  • O le fausaga o lo'o aofia ai se faiga fa'apipi'i su'esu'ega fa'alagolago (le fa'atonuga o le "deno info") ma se fa'aoga mo le fa'avasegaina o tulafono (deno fmt);
  • E mafai ona tu'u fa'atasi uma tusi talosaga i se faila JavaScript e tasi.

puna: opennet.ru

Faaopoopo i ai se faamatalaga