Ua kūpono ka paepae Deno JavaScript me nā modula NPM

Ua hoʻokuʻu ʻia ʻo Deno 1.28, kahi papa hana no ka sandboxing JavaScript a me TypeScript noi hiki ke hoʻohana ʻia e hana i nā mea lawelawe ʻaoʻao server. Hoʻokumu ʻia ka paepae e Ryan Dahl, ka mea nāna i hana Node.js. E like me Node.js, hoʻohana ʻo Deno i ka mīkini JavaScript V8, kahi i hoʻohana ʻia i nā polokalamu kele pūnaewele Chromium. Ma ka manawa like, ʻaʻole ʻo Deno kahi ʻōpala o Node.js, akā he papahana hou i hana ʻia mai ka wā ʻōpala. Hāʻawi ʻia ke code papahana ma lalo o ka laikini MIT. Hoʻomākaukau ʻia nā kūkulu no Linux, Windows a me macOS.

Ua hoʻokumuʻia ka papahana Deno e hoʻolako i nā mea hoʻohana i kahi kūlana palekana a hoʻopau i nā hewa manaʻo ma ka hoʻolālā Node.js. No ka hoʻomaikaʻi ʻana i ka palekana, ua kākau ʻia ka mīkini V8 ma Rust, kahi e pale ai i ka nui o nā nāwaliwali e kū mai ana mai ka hoʻomanaʻo haʻahaʻa haʻahaʻa. No ka hoʻoponopono ʻana i nā noi ma kahi ʻano pale ʻole, hoʻohana ʻia ke kahua Tokio, i kākau pū ʻia ma Rust. ʻAe ʻo Tokio iā ʻoe e hana i nā noi hana kiʻekiʻe e pili ana i ka hoʻolālā hanana hanana, ke kākoʻo ʻana i nā noi pūnaewele multi-threading a me ka hoʻoponopono ʻana i ke ʻano asynchronous.

ʻO kahi hoʻololi koʻikoʻi i ka hoʻokuʻu hou ʻana ʻo ia ka hoʻopaʻa ʻana o ka launa pū me nā pūʻolo i hoʻokipa ʻia ma ka waihona NPM, e hiki ai iā Deno ke hoʻohana ma mua o 1.3 miliona mau modula i hana ʻia no ka platform Node.js. No ka laʻana, hiki i nā noi i hoʻokumu ʻia Deno ke hoʻohana i nā modula komo ʻikepili hoʻomau e like me Prisma, Mongoose a me MySQL, a me nā papa hana mua e like me React a me Vue. ʻAʻole paʻa kekahi mau modula NPM me Deno, no ka laʻana ma muli o ka hoʻopaʻa ʻana i nā mea kaiapuni kikoʻī Node.js e like me ka file package.json. ʻAʻole hiki ke hoʻohana i ke kauoha "deno compile" me nā modula NPM. Hoʻolālā nā hoʻokuʻu e hiki mai ana e hoʻoponopono i kēia mau kūpono ʻole a me nā palena.

Mālama ʻia ke kākoʻo no ka ʻōnaehana module ECMAScript a Deno i hoʻohana mua ʻia a me ke kumu hoʻohālike API Web ma ka pae hoʻokahi, a ua hoʻohana ʻia ka ʻōnaehana hoʻouka ʻana i ka URL maʻamau a Deno no ka lawe ʻana i nā modula NPM. No ke komo ʻana i nā modula NPM, aia kahi prefix URL kūikawā "npm:", hiki ke hoʻohana ʻia e like me nā modula Deno maʻamau. No ka laʻana, no ka hoʻokomo ʻana i kahi module NPM, hiki iā ʻoe ke kuhikuhi i ka 'import { chalk } mai "npm: chalk@5";', a e holo i kahi palapala NPM mai ka laina kauoha - "deno run --allow-env --allow -heluhelu npm: hana- vite-extra.

ʻOi aku ka maʻalahi o ka hoʻohana ʻana i nā pūʻolo NPM ma Deno ma mua o Node.js, no ka mea, ʻaʻohe pono e hoʻokomo mua i nā modula (hoʻokomo ʻia nā modula i ka wā i hoʻomaka mua ʻia ai ka noi), ʻaʻohe file package.json, a ʻaʻohe node_modules paʻamau. papa kuhikuhi (ua hūnā ʻia nā modules i ka papa kuhikuhi, akā hiki ke hoʻihoʻi i ka hana kahiko me ka hoʻohana ʻana i ke koho "--node-modules-dir").

Hiki ke hoʻohana i ka mana o Deno, ka hoʻokaʻawale ʻana, a me ka hiki ke hoʻohana i ka mana o Deno. No ka pale ʻana i nā hoʻouka kaua ʻana ma o nā hilinaʻi kānalua, hoʻopaʻa ʻo Deno i nā hoʻāʻo āpau e loaʻa i ka ʻōnaehana mai nā hilinaʻi a hōʻike i kahi ʻōlelo luhi e pili ana i nā pilikia i ʻike ʻia. No ka laʻana, i ka wā e hoʻāʻo ai kahi module e loaʻa ke komo kākau i /usr/bin/, e hōʻike ʻia kahi noi hōʻoia no kēia hana: deno run npm:install-malware ⚠️ ┌ Deno nois write access to /usr/bin/. ├ Noi ʻia e `install-malware` ├ E holo hou me --allow-write e kāʻalo i kēia kauoha. └ ʻAe? [y/n] (y = ʻae, ʻae; n = ʻaʻole, hōʻole) >

ʻO ka hoʻomaikaʻi ʻana i ka NPM ʻole i ka mana hou e pili ana i ka hoʻonui ʻana i ka mīkini V8 e hoʻokuʻu i ka 10.9, ʻike ʻakomi i nā faila me nā laka, hoʻopaʻa i ka Deno.bench (), Deno.gid (), Deno.networkInterfaces (), Deno.systemMemoryInfo () a me Deno API. .uid(), hoʻohui hou ʻole API Deno.Command() no ka holo ʻana i nā kauoha (hoʻololi ākea no Deno.spawn, Deno.spawnSync a me Deno.spawnChild).

ʻO nā hiʻohiʻona nui o Deno:

  • Hoʻonohonoho paʻamau pili i ka palekana. ʻAʻole paʻamau ka loaʻa ʻana o ka faila, ka pūnaewele, a me ke komo ʻana i nā ʻano hoʻololi kaiapuni a pono e ʻae ʻia. Ke holo nei nā noi ma nā wahi pahu one kaʻawale a ʻaʻole hiki ke komo i nā mana ʻōnaehana me ka ʻole o ka hāʻawi ʻana i nā ʻae kikoʻī;
  • Kākoʻo i kūkulu ʻia no TypeScript ma waho o JavaScript. No ka nānā ʻana i ke ʻano a me ka hanauna JavaScript, hoʻohana ʻia ka mea hōʻuluʻulu TypeScript maʻamau, e alakaʻi ana i kahi hāʻule o ka hana i hoʻohālikelike ʻia me JavaScript parsing ma V8;
  • Hiki mai ka manawa holo ma ke ʻano o kahi faila hoʻokō ponoʻī hoʻokahi ("deno"). No ka holo ʻana i nā noi me Deno, pono ʻoe e hoʻoiho i hoʻokahi faila hiki ke hoʻokō ʻia no kāu kahua, ma kahi o 30 MB ka nui, ʻaʻohe ona hilinaʻi waho a ʻaʻole koi i kahi hoʻonohonoho kūikawā ma ka ʻōnaehana. Eia kekahi, ʻaʻole he noi monolithic ka deno, akā he hōʻiliʻili o nā pūʻolo Rust crate (deno_core, rusty_v8), hiki ke hoʻohana ʻokoʻa;
  • I ka hoʻomaka ʻana i ka papahana, a me ka hoʻouka ʻana i nā modules, hiki iā ʻoe ke hoʻohana i ka ʻōlelo URL. No ka laʻana, e holo i ka polokalamu welcome.js, hiki iā ʻoe ke hoʻohana i ke kauoha "deno https://deno.land/std/examps/welcome.js". Hoʻoiho ʻia nā code mai nā kumuwaiwai o waho a hoʻopaʻa ʻia ma ka ʻōnaehana kūloko, akā ʻaʻole i hoʻonui ʻia (e koi ʻia ka hoʻonui ʻana i ka noi me ka hae "--reload");
  • ʻO ka hana kūpono o nā noi pūnaewele ma o HTTP i nā noi; ua hoʻolālā ʻia ke kahua no ka hana ʻana i nā noi pūnaewele hana kiʻekiʻe;
  • ʻO ka hiki ke hana i nā noi pūnaewele puni honua i hiki ke hoʻokō ʻia ma Deno a ma kahi polokalamu kele pūnaewele maʻamau;
  • ʻO ka hele ʻana o kahi hoʻonohonoho maʻamau o nā modules, ʻaʻole pono ka hoʻohana ʻana i ka hoʻopaʻa ʻana i nā hilinaʻi o waho. Ua loaʻa i nā modula mai ka hōʻiliʻili maʻamau ka loiloi hou a me ka hoʻāʻo ʻana;
  • Ma waho aʻe o ka runtime, hana pū ka Deno platform ma ke ʻano he mea hoʻokele pōpō a hiki iā ʻoe ke komo i nā modules e URL i loko o ke code. No ka laʻana, no ka hoʻouka ʻana i kahi module, hiki iā ʻoe ke kuhikuhi i ke code "import * as log from "https://deno.land/std/log/mod.ts". Hoʻopili ʻia nā faila i hoʻoiho ʻia mai nā kikowaena waho ma o URL. Hoʻoholo ʻia ka hoʻopaʻa ʻana i nā mana module ma ke kuhikuhi ʻana i nā helu mana i loko o ka URL, no ka laʻana, "https://unpkg.com/[pale ʻia ka leka uila]/dist/liltest.js";
  • Aia i loko o ka hale kahi ʻōnaehana nānā hilinaʻi i hoʻohui ʻia (ke kauoha "deno info") a me kahi mea pono no ka hoʻopili ʻana i nā code (deno fmt);
  • Hiki ke hoʻohui ʻia nā palapala noi a pau i hoʻokahi faila JavaScript.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka