Kua tukuna te Deno 1.28, he tūāpapa mō te whakahaere takitahi i ngā tono JavaScript me TypeScript ka taea te whakamahi hei hanga i ngā kaiwhakahaere taha-tūmau. Kei te whakawhanakehia te tūāpapa e Ryan Dahl, te kaihanga o Node.js. Pērā i a Node.js, ka whakamahia e Deno te miihini JavaScript V8, e whakamahia ana hoki i roto i ngā pūtirotiro e hangai ana ki Chromium. Heoi, ehara a Deno i te marau o Node.js, engari he kaupapa hou i hangaia mai i te tīmatanga. Ka tohatohahia te waehere kaupapa i raro i te raihana MIT. Ka whakaritea ngā hanganga mō Linux, Windows и macOS.
I hangaia te kaupapa Deno ki te whakarato ki nga kaiwhakamahi he taiao haumaru ake me te whakakore i nga hapa o te ariā i roto i te hoahoanga Node.js. Hei whakapai ake i te haumarutanga, ka tuhia te miihini V8 ki Rust, e karo ana i te maha o nga whakaraeraetanga ka puta mai i te raweke mahara taumata-iti. Hei tukatuka i nga tono i roto i te aratau kore-aukati, ka whakamahia te papaahi Tokio, i tuhia ano ki te Rust. Ka taea e Tokio te hanga i nga tono mahi teitei i runga i te hoahoanga-a-takahanga, e tautoko ana i nga tono miro maha me te tukatuka i nga tono whatunga i roto i te aratau tukutahi.
Ko te whakarereketanga nui i roto i te tukunga hou ko te whakapumautanga o te hototahi me nga kete e whakahaerehia ana i roto i te putunga NPM, e taea ai e Deno te whakamahi neke atu i te 1.3 miriona nga waahanga i hangaia mo te papanga Node.js. Hei tauira, ka taea e nga tono a Deno te whakamahi i nga waahanga whakauru raraunga tohe penei i a Prisma, Mongoose me MySQL, tae atu ki nga anga o mua penei i te React me te Vue. He hotokore tonu etahi o nga waahanga NPM ki a Deno, hei tauira na te herenga ki nga huānga taiao motuhake-Node.js penei i te konae package.json. Kaore ano kia taea te whakamahi i te whakahau "deno compile" me nga waahanga NPM. Ko nga whakaputanga a meake nei e whakamahere ana ki te whakatika i enei hototahi me nga here.
Ko te tautoko mo te punaha ECMAScript i whakamahia i mua a Deno me te tauira API Tukutuku kei te mau tonu ki te taumata kotahi, ka whakamahia te kaupapa uta a Deno e ahu mai ana i te URL ki te kawemai i nga waahanga NPM. Hei uru atu ki nga waahanga NPM, he tohu tohu URL motuhake "npm:", ka taea te whakamahi kia rite ki nga waahanga Deno auau. Hei tauira, ki te kawemai i tetahi kōwae NPM, ka taea e koe te tohu 'kawmai { tioka } mai i "npm: chalk@5";', me te whakahaere i tetahi tuhinga NPM mai i te raina whakahau - "deno run --allow-env --allow -panui npm:create- vite-extra.
Ko te whakamahi i nga kohinga NPM i Deno he maamaa ake i te Node.js, na te mea kaore he take ki te whakauru i nga waahanga i mua i te whakauru (kua whakauruhia nga kōwae i te wa tuatahi ka whakarewahia te tono), kaore he konae package.json, kaore he node_modules taunoa. whaiaronga (he keteroki nga kōwae i roto i te whaiaronga tiritahi, engari ka taea te whakahoki i te whanonga tawhito ma te whakamahi i te "--node-modules-dir" kōwhiringa).
Ko nga tono a-NPM e pupuri ana i te kaha ki te whakamahi i te mana uru a Deno, te wehe, me nga kaha matatau-haumarutanga. Hei karo i nga whakaeke mai i nga whakawhirinakitanga pahekeheke, ka aukati a Deno ma te taunoa nga nganatanga katoa kia uru atu ki te punaha mai i nga whakawhirinakitanga me te whakaatu whakatupato mo nga raru kua kitea. Hei tauira, ka ngana ana tetahi kōwae ki te uru tuhituhi ki /usr/bin/, ka whakaatuhia he tono whakau mo tenei mahi: deno run npm:install-malware ⚠️ ┌ Deno requests write access to /usr/bin/. ├ I tonohia e `install-malware` ├ Rere ano me te --allow-write ki te karo i tenei tere. └ Whakaae? [y/n] (y = ae, tukua; n = kao, kare) >
Ko nga whakapainga kore-NPM i roto i te putanga hou ko te whakahou i te miihini V8 ki te tuku 10.9, te kitenga aunoa o nga konae me nga raka, te whakapumautanga o te Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() me nga API Deno .uid(), me te taapiri i te API korekore Deno.Command() mo nga whakahau whakahaere (whakakapi ao mo Deno.spawn, Deno.spawnSync me Deno.spawnChild).
Ko nga ahuatanga matua o Deno:
- whirihoranga taunoa-haumarutanga. Ko te urunga kōnae, te whatunga, me te uru ki nga taurangi taiao kua monokia ma te taunoa, me tino whakaahei. Ko nga tono ma te taunoa ka whakahaerehia i roto i nga taiao pouaka kirikiri taratahi, kaore e taea te uru atu ki nga kaha o te punaha me te kore e tuku whakaaetanga marama;
- Tautoko-i roto mo te TypeScript i tua atu o JavaScript. Mo te arowhai momo me te whakatipuranga JavaScript, ka whakamahia te Kaihanga TypeScript paerewa, ka heke iho te mahi ka whakaritea ki te parapara JavaScript i V8;
- Ko te wa whakahaere ka puta mai i te ahua o te konae ka taea te whakahaere i a ia ano ("deno"). Hei whakahaere i nga tono ma Deno, me tango noa e koe tetahi konae ka taea te whakahaere mo to papaahi, tata ki te 30 MB te rahi, karekau he herenga o waho me te kore e hiahiatia he whakaurunga motuhake ki te punaha. I tua atu, ko te deno ehara i te tono monolithic, engari he kohinga o nga kete waikura (deno_core, rusty_v8), ka taea te whakamahi wehe;
- I te wa e tiimata ana te kaupapa, me te utaina o nga waahanga, ka taea e koe te whakamahi i te korero URL. Hei tauira, ki te whakahaere i te kaupapa welcome.js, ka taea e koe te whakamahi i te whakahau “deno https://deno.land/std/examples/welcome.js”. Ko te waehere mai i nga rauemi o waho ka tangohia, ka keteroki ki te punaha o te rohe, engari kaore e whakahōu aunoatia (ko te whakahou me tino whakahaere te tono me te haki "--reload");
- He pai te tukatuka o nga tono whatunga ma te HTTP i roto i nga tono, kua hoahoatia te papaaho mo te hanga tono whatunga tino mahi;
- Te kaha ki te hanga i nga tono tukutuku mo te ao katoa ka taea te whakahaere i Deno me te kaitirotiro paetukutuku auau;
- Ko te aroaro o te huinga paerewa o nga waahanga, ko te whakamahi kaore e hiahiatia kia herea ki nga whakawhirinaki o waho. Ko nga waahanga mai i te kohinga paerewa kua uru ki te tirotiro me te whakamatautau hototahi;
- Haunga te wā whakahaere, ka mahi anō te tūāpapa Deno hei kaiwhakahaere mōkihi, ā, ka taea e koe te uru atu ki ngā kōwae mā te URL i roto i tō waehere. Hei tauira, hei uta i tētahi kōwae, ka taea e koe te tohu "import * as log from "https://deno.land/std/log/mod.ts" i roto i tō waehere. Ka utaina ngā kōnae mai i waho tūmau mā te URL, kua keterokihia. Ka whakatauhia te hononga ki ngā putanga kōwae mā te tohu i ngā tau putanga i roto i te URL, hei tauira, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
- Kei roto i te hanganga he punaha tirotiro whakawhirinaki (te whakahau "deno info") me tetahi taputapu mo te whakahōputu waehere (deno fmt);
- Ka taea te whakakotahi i nga tuhinga tono katoa ki te konae JavaScript kotahi.
Source: opennet.ru
