ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ Deno 1.28, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° JavaScript ΠΈ TypeScript, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ°. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ Π Π°ΠΉΠ°Π½ ΠΠ°Π» (Ryan Dahl), ΡΡΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° Node.js. ΠΠ°ΠΊΡΠΎ ΠΈ Π² Node.js, Π² Deno ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° JavaScript Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ V8, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π² Π±ΡΠ°ΡΠ·ΡΡΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Chromium. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Deno Π½Π΅ Π΅ ΠΊΠ»ΠΎΠ½ Π½Π° Node.js, Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ Π½ΡΠ»Π°ΡΠ°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ MIT Π»ΠΈΡΠ΅Π½Π·. ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Linux, Windows ΠΈ macOS.
ΠΡΠΎΠ΅ΠΊΡΡΡ Deno Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Ρ ΡΠ΅Π» ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠΎ-Π·Π°ΡΠΈΡΠ΅Π½Π° ΡΡΠ΅Π΄Π° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, Π΄ΠΎΠΏΡΡΠ½Π°ΡΠΈ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° Node.js. ΠΠ° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° ΠΎΠΊΠΎΠ»ΠΎ V8 Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Rust, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Tokio, ΡΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Rust. Tokio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (Event-driven), ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΡΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ NPM, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π² Deno Π½Π° Π½Π°Π΄ 1.3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΌΠΎΠ΄ΡΠ»Π°, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Node.js. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Deno ΡΠ΅Π³Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Prisma, Mongoose ΠΈ MySQL, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠΎΠ½ΡΠ΅Π½Π΄, ΠΊΠ°ΡΠΎ React ΠΈ Vue. ΠΡΠΊΠΎΠΈ NPM ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΡΠ΅ ΠΎΡΠ΅ ΠΎΡΡΠ°Π²Π°Ρ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ Deno, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°ΡΠ°Π΄ΠΈ ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡΠΈΡΠ΅ ΡΠΈ ΠΊΡΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Node.js Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ°, ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ»Π° package.json. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βdeno compileβ Ρ NPM ΠΌΠΎΠ΄ΡΠ»ΠΈ. Π Π±ΡΠ΄Π΅ΡΠΈ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π² Deno, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ECMAScript ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ Web API, Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½Π° Π½Π° ΡΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ, Π° Π·Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° NPM ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ·Π½Π°ΡΠ°ΡΠ° Π½Π° Deno ΡΡ Π΅ΠΌΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΡΠ° ΡΠ΅ Π½Π° URL. ΠΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ NPM ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ URL-ΠΏΡΠ΅ΡΠΈΠΊΡ βnpm:β, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ Deno ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° NPM ΠΌΠΎΠ΄ΡΠ» ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ βimport { chalk } from βnpm:chalk@5β;β, Π° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° NPM ΡΠΊΡΠΈΠΏΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ β βdeno run βallow-env βallow-read npm:create-vite-extraβ.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° NPM ΠΏΠ°ΠΊΠ΅ΡΠΈ Π² Deno Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² Node.js, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ (ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ ΠΏΡΠΈ ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ), ΡΠ°ΠΉΠ»ΡΡ package.json Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° node_modules (ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ Π² ΠΎΠ±ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, Π½ΠΎ ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΡΡΡΠ°Π½Π΅ ΠΊΡΠΌ ΡΡΠ°ΡΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΎΠΏΡΠΈΡΡΠ° ββnode-modules-dirβ).
Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° NPM, ΠΎΡΡΠ°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈΡΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈ ΠΎΡ Deno. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΡΡΠ°Π²ΠΈ Π½Π° Π°ΡΠ°ΠΊΠΈ ΡΡΠ΅Π· ΡΡΠΌΠ½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Deno ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠΈΡΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π½Π° ΠΌΠΎΠ΄ΡΠ» Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π·Π° Π·Π°ΠΏΠΈΡ Π² /usr/bin/ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ ΠΈΡΠΊΠ°Π½Π΅ Π·Π° ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ°: deno run npm:install-malware β οΈ β Deno ΠΈΡΠΊΠ° Π΄ΠΎΡΡΡΠΏ Π·Π° Π·Π°ΠΏΠΈΡ Π² /usr/bin/. β ΠΠ·ΠΈΡΠΊΠ°Π½ΠΎ ΠΎΡ `install-malware` β ΠΠ·ΠΏΡΠ»Π½Π΅ΡΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ Ρ βallow-write, Π·Π° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡΠ΅ ΡΠΎΠ²Π° ΠΈΡΠΊΠ°Π½Π΅. β ΠΠΎΠ·Π²ΠΎΠ»ΠΈ? [y/n] (y = Π΄Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ; n = Π½Π΅, ΠΎΡΠΊΠ°ΠΆΠΈ) >
ΠΡ Π½Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Π² NPM ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ V8 Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 10.9, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ, ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° API Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ΠΈ Deno.uid(), Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π½ΠΎΠ² Π½Π΅ΡΡΠ°Π±ΠΈΠ»Π΅Π½ API Deno.Command() Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½Π° Π·Π°ΠΌΡΠ½Π° Π½Π° Deno.spawn, Deno.spawnSync ΠΈ Deno.spawnChild).
ΠΡΠ½ΠΎΠ²Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Deno:
- ΠΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΠΎΡΡΡΠΏΡΡ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΠ°Π½ ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ²Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ sandbox ΡΡΠ΅Π΄ΠΈ ΠΈ Π½ΡΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ²Π½ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ;
- ΠΠ³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° TypeScript Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ JavaScript. ΠΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° JavaScript ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ TypeScript, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ½ΠΈΠΆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π½Π° JavaScript Π² V8;
- Runtime ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» (βdenoβ). ΠΠ° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Deno, Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Π·Π° Π²Π°ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 30 ΠΠ, Π±Π΅Π· Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ Π±Π΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, deno Π½Π΅ Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ crate Π½Π° Rust (deno_core, rusty_v8), ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ;
- ΠΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΡΡΠ΅Π· URL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° welcome.js ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«deno https://deno.land/std/examples/welcome.jsΒ». ΠΠΎΠ΄ΡΡ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΈ ΠΊΠ΅ΡΠΈΡΠ° Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ (Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ ΡΠ»Π°Π³Π° Β«βreloadΒ»);
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ HTTP Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π° Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΊΠ°ΠΊΡΠΎ Π² Deno, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡ;
- ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ Π½Π°Π±ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΠΈΡΡΠΎ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ Π²ΡΠ½ΡΠ½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΎΠ΄ΠΈΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ;
- ΠΡΠ²Π΅Π½ runtime, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Deno ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π² ΠΊΠΎΠ΄Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎ URL. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΊΠ°ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π° Β«import * as log from Β«https://deno.land/std/log/mod.tsΒ». Π€Π°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Ρ Π²ΡΠ½ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΏΠΎ URL, ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ. ΠΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡΡΠ° ΠΊΡΠΌ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠ΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π² URL, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«https://unpkg.com/liltest@0.0.5/dist/liltest.jsΒ»;
- Π ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«deno infoΒ») ΠΈ ΡΡΠΈΠ»ΠΈΡΠ° Π·Π° ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ (deno fmt);
- ΠΡΠΈΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ JavaScript ΡΠ°ΠΉΠ».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
