Node.js рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд░рдпрд╛рди рдбрд╛рд╣рд▓ рдиреЗ рдкрд┐рдЫрд▓реЗ рдбреЗрдврд╝ рд╕рд╛рд▓ рд╕реЗ
рдбреЗрдиреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдирдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рдирдЯрд╛рдЗрдо рд╣реИ рдЬреЛ Node.js. рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИред рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рд╢реНрд░реЗрдп рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░рдпрд╛рди рдбрд╛рд╣рд▓ рдиреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдХрд┐ Node.js рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдЕрдкрдиреЗ рдмрдЪрд╛рд╡ рдореЗрдВ, рдХреЛрдИ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ Node.js рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛рдлреА рдХрдо рд╕рдордп рдореЗрдВ рдХрд┐рддрдирд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 2009 рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА рдПрдХ рд╕реАрдорд┐рдд рдФрд░ рдЕрдЬреАрдм рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рдереА, рдЬрд┐рд╕реЗ рд╣рд░ рдХрд┐рд╕реА рдиреЗ рдЖрд▓рд╕реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рдЗрди рджрд┐рдиреЛрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд╡реЗ рдореМрдЬреВрдж рдирд╣реАрдВ рдереАрдВред
рдбреЗрдиреЛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдордВрдЪ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?
Deno рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдирдЯрд╛рдЗрдо рд╣реИ рдЬреЛ Google рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд V8 JS рдЗрдВрдЬрди рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Deno рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рд░рд╕реНрдЯ (рдбреЗрди рдХреЛрд░ рдХреЛрд░ рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдиреЛрдб рдХреЛрд░ C ++ рдореЗрдВ рд╣реИ)ред
- рдЯреЛрдХрд┐рдпреЛ (рд░рд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдЗрд╡реЗрдВрдЯ рд▓реВрдк)ред
- рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдбреЗрдиреЛ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)ред
- V8 (рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░, Node.js рдФрд░ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ Google рдХрд╛ JS рдЗрдВрдЬрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдиреЛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣рдореЗрдВ рдХрд┐рди рдЕрд╡рд╕рд░реЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛ (рдЕрдиреБрдорддрд┐рдпрд╛рдБ)
рдбреЗрдиреЛ рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ, рдЬрд┐рди рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдиреЛрдб рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбреЗрдиреЛ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдХреА рдирд┐рдореНрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ:
- рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдоред
- рдиреЗрдЯрд╡рд░реНрдХред
- рдЕрдиреНрдп рд▓рд┐рдкрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред
- рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ред
рдПрдХ рдирдЬрд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдиреЛ рдХреА рдЕрдиреБрдорддрд┐ рдкреНрд░рдгрд╛рд▓реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
(async () => { const encoder = new TextEncoder(); const data = encoder.encode('Hello world\n'); await Deno.writeFile('hello.txt', data); await Deno.writeFile('hello2.txt', data); })();
рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рддреА рд╣реИ -
hello.txt
рдФрд░
hello2.txt
ред рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ
Hello world
рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХреЛрдб рдХреЛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ рд╣рдо
Deno
рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐
fs
рдореЙрдбреНрдпреВрд▓ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдиреЛрдб рдореЗрдВ рдХрд░реЗрдВрдЧреЗред
Deno
рдирд╛рдо рд╕реНрдерд╛рди рдХрдИ рдмреБрдирд┐рдпрд╛рджреА рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо, рдирд╛рдо рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдХреЛрдб рд╕рдВрдЧрддрддрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
deno run write-hello.ts
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджреЗрдЦреЗрдВрдЧреЗ:
Deno requests write access to "/Users/user/folder/hello.txt". Grant? [a/y/n/d (a = allow always, y = allow once, n = deny once, d = deny always)]
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рджреЛ рдмрд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЕрдЧрд░ рд╣рдо
allow always
рд╡рд┐рдХрд▓реНрдк рдХреА
allow always
рджреЗрдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░
allow always
, рддреЛ рджреВрд╕рд░реА рдмрд╛рд░ рд╣рдореЗрдВ рдпрд╣ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧреАред
рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ
PermissionDenied
рддреНрд░реБрдЯрд┐
PermissionDenied
рдЬрд╛рдПрдЧреАред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдм рдкреВрд░реА рд╣реЛ рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
deno run --allow-write write-hello.ts
рд╣рдо рдХреЛрдИ рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ; рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреАред
--allow-write
рдлреНрд▓реИрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рдЖрдк рдЕрдиреНрдп рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рд╣реИрдВ -
--allow-net
, -
--allow-env
рдФрд░
--allow-run
ред рд╡реЗ рдХреНрд░рдорд╢рдГ рдиреЗрдЯрд╡рд░реНрдХ рддрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣реБрдВрдЪ, рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрдкрдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╢реБрднрд╛рд░рдВрдн рдХреЗ рд▓рд┐рдП рдЦреЛрд▓рддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рддрд░рд╣ Deno, URL рджреНрд╡рд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдИ рд▓реЛрдЧ URL рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреЛрдб рдЖрдпрд╛рдд рдХрдорд╛рдВрдб рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВ - рдФрд░ рдЖрдк рдЗрд╕реЗ рдЦреБрдж рд╕рдордЭ рдЬрд╛рдПрдВрдЧреЗред
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";
рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдорди рдореЗрдВ рдпрд╣ рд╕рд╡рд╛рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ URL рджреНрд╡рд╛рд░рд╛ рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЦрд╛рд╕ рд╣реИ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ: URL рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдмрд┐рдирд╛ npm рдЬреИрд╕реЗ рдХреЗрдВрджреНрд░реАрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ Deno рдкреИрдХреЗрдЬ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдирдкреАрдПрдо рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ
рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ ред
URL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдЖрдпрд╛рдд рдХрд╛ рдЖрдпреЛрдЬрди рдкреИрдХреЗрдЬ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рдХреЛрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рднреА рд╡реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЕрдкрдиреА рд╕рднреА рдорд╣рд┐рдорд╛ рдореЗрдВ рд╡рд┐рдХреЗрдВрджреНрд░реАрдХрд░рдг рд╣реИред рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ
package.json
node_modules
рдФрд░
node_modules
ред
рдЬрдм рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдиреЛ рд╕рднреА рдЖрдпрд╛рддрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╡реЗ рдХреИрд╢ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ Deno рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ
--reload
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
--reload
рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рди рдХрд░реЗрдВред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рдкреВрдЫреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕ рд╕рдВрд╕рд╛рдзрди рдХреЛрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИ, рд╡рд╣ рдХрд┐рддрдирд╛ рджреБрд░реНрдЧрдо рд╣реИ?
рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡реЗрдм рд╕рдВрд╕рд╛рдзрди рдХрдИ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдпрд╛ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд▓рд╛рдирд╛, рдпрд╣ рдЖрд╢рд╛ рдХрд░рдирд╛ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреА рдореЗрдЬрдмрд╛рдиреА рд╣рдореЗрд╢рд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, Deno рдиреЗ рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдХреИрд╢ рдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдХ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдиреЛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА (рдЕрд░реНрдерд╛рдд рдЧрд┐рдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рд╕рдВрд╕рд╛рдзрди рдЬрд┐рд╕ рдкрд░ рдХреЛрдб рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ рд╡рд╣ рджреБрд░реНрдЧрдо рд╣реИ, рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗред
$DENO_DIR
рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреИрд╢ рдХреЛ рдХреИрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рдЪрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреИрд╢ рдХреИрд╢ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреИрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред
$DENO_DIR
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░ рдореЗрдВ рдХреБрдЫ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЖрдкрдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
тЦН рдХреНрдпрд╛ рдореБрдЭреЗ URL рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рддрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ URL рджрд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЬрд▓реНрджреА рдКрдм рд╕рдХрддреЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрдиреЛ рд╣рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реАрдХреЗ рджреЗрддрд╛ рд╣реИред
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЖрдпрд╛рддрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
export { test, assertEquals } from "https://deno.land/std/testing/mod.ts";
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЬрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдХрдорд╛рдВрдб рд╕реНрдерд┐рдд рд╣реИ, рдЙрд╕реЗ
local-test-utils.ts
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм, рдпрджрд┐ рд╣рдореЗрдВ
test
рдпрд╛
assertEqual
рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
import { test, assertEquals } from './local-test-utils.ts';
рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ URL рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред
рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк JSON рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрдпрд╛рдд рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛ рд╣реИ:
{ "imports": { "http/": "https://deno.land/std/http/" } }
рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдпрд╛рдд рдЖрджреЗрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
import { serve } from "http/server.ts";
рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рддреЗ рд╕рдордп -
--importmap
рдлреНрд▓реИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ
--importmap
рдирдХреНрд╢реЗ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛:
deno run --importmap=import_map.json hello_server.ts
рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдЙрдирдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред рдЧреНрд░рд╛рд╣рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рд╣реА рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдирдирд╛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ URL рдореЗрдВ рдЬреЛрдбрд╝рдирд╛:
https://unpkg.com/liltest@0.0.5/dist/liltest.js
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛
Deno рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЬрдм рд╣рдо рдИрдПрд╕-рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡реЗрдмрдкреИрдХ рдЬреИрд╕реЗ рдХреБрдЫ рдЕрд╕реЗрдВрдмрд▓реА рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреИрдмреЗрд▓ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдЖрдзреБрдирд┐рдХ рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдИрдПрд╕ 5 рдЕрдиреБрд░реВрдк рдХреЛрдб рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЗрд╕ рдХреЛрдб рдХреЛ рдЧреИрд░-рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдзреБрдирд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдПрдХ рдорд╛рдЗрдирд╕ рднреА рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рд╡реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрдВрдбрд▓ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдмрдврд╝рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рд╣рд╛рдпрдХ рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред рд╣рдо рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдг рдЪреБрдирддреЗ рд╣реИрдВред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
рдбреЗрдиреЛ рдЯреАрдПрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдбреЗрдиреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдЯрд╛рдЗрдкреЛ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг, рдбреЗрдиреЛ, рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╕рдордп рд╕реЗ рд╕реНрдерд┐рд░рддрд╛ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рдирд╛ рд╣реИред
рдбреЗрдиреЛ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХреЗрдиреНрджреНрд░реАрдХреГрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдореБрдХреНрдд рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдЖрдЬ npm рд╣реИред
рд░реЗрдпрд╛рди рдбрд╛рд╣рд▓ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рджреЗрд░ рд╕реЗ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдбреЗрдиреЛ 1.0 рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдЗрд╕рдХреЗ
рднрдВрдбрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдк рдбреЗрдиреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?
