Deno JavaScript වේදිකාව NPM මොඩියුල සමඟ අනුකූල වේ

Deno 1.28 නිකුත් කර ඇත, සෑන්ඩ්බොක්සිං JavaScript සහ TypeScript යෙදුම් සඳහා රාමුවක් වන අතර එය සේවාදායක පැත්තේ හසුරුවන්න නිර්මාණය කිරීමට භාවිතා කළ හැක. Node.js හි නිර්මාතෘ Ryan Dahl විසින් වේදිකාව සංවර්ධනය කර ඇත. Node.js මෙන්, Deno භාවිතා කරන්නේ V8 ජාවාස්ක්‍රිප්ට් එන්ජිම වන අතර එය ක්‍රෝමියම් පාදක බ්‍රව්සර්වලද භාවිතා වේ. ඒ අතරම, Deno යනු Node.js හි දෙබලක නොවේ, නමුත් එය මුල සිටම නිර්මාණය කරන ලද නව ව්‍යාපෘතියකි. ව්යාපෘති කේතය MIT බලපත්රය යටතේ බෙදා හරිනු ලැබේ. Linux, Windows සහ macOS සඳහා ගොඩනැගීම් සූදානම් කර ඇත.

Deno ව්‍යාපෘතිය නිර්මාණය කර ඇත්තේ පරිශීලකයින්ට වඩාත් ආරක්ෂිත පරිසරයක් ලබා දීමට සහ Node.js ගෘහ නිර්මාණ ශිල්පයේ සංකල්පීය දෝෂ ඉවත් කිරීමට ය. ආරක්ෂාව වැඩි දියුණු කිරීම සඳහා, V8 එන්ජිම රස්ට් වලින් ලියා ඇත, එය පහත් මට්ටමේ මතකය හැසිරවීමෙන් පැන නගින බොහෝ දුර්වලතා මග හැරේ. අවහිර නොවන ආකාරයෙන් ඉල්ලීම් සැකසීමට, Rust වලින් ලියා ඇති Tokio වේදිකාව භාවිතා වේ. Tokio ඔබට සිදුවීම් මත පදනම් වූ ගෘහ නිර්මාණ ශිල්පය මත පදනම්ව ඉහළ කාර්ය සාධන යෙදුම් නිර්මාණය කිරීමට ඉඩ සලසයි, අසමමුහුර්ත ආකාරයෙන් බහු-නූල් කිරීම සහ ජාල ඉල්ලීම් සැකසීමට සහාය වේ.

නව නිකුතුවේ ප්‍රධාන වෙනසක් වන්නේ NPM ගබඩාවේ සත්කාරක පැකේජ සමඟ ගැළපුම ස්ථායි කිරීමයි, එමඟින් Node.js වේදිකාව සඳහා නිර්මාණය කරන ලද මොඩියුල මිලියන 1.3 කට වඩා භාවිතා කිරීමට Deno හට ඉඩ සලසයි. උදාහරණයක් ලෙස, Deno-පාදක යෙදුම් වලට දැන් Prisma, Mongoose සහ MySQL වැනි ස්ථීර දත්ත ප්‍රවේශ මොඩියුල මෙන්ම React සහ Vue වැනි ඉදිරිපස රාමු භාවිතා කළ හැක. සමහර NPM මොඩියුල තවමත් Deno සමඟ නොගැලපේ, උදාහරණයක් ලෙස Node.js-විශේෂිත පරිසර මූලද්‍රව්‍ය වන package.json ගොනුව වෙත බැඳීම් හේතුවෙන්. NPM මොඩියුල සමඟ "deno compile" විධානය භාවිතා කිරීමට ද තවමත් නොහැකි ය. අනාගත නිකුතු මෙම නොගැලපීම් සහ සීමාවන් විසඳීමට සැලසුම් කරයි.

Deno හි කලින් භාවිතා කරන ලද ECMAScript මොඩියුල පද්ධතිය සහ Web API ආකෘතිය සඳහා සහය එකම මට්ටමක රඳවා ඇති අතර, NPM මොඩියුල ආයාත කිරීමට Deno හි හුරුපුරුදු URL-පාදක පැටවීමේ ක්‍රමය භාවිතා කරයි. NPM මොඩියුල වෙත ප්‍රවේශ වීමට, "npm:" විශේෂ URL උපසර්ගයක් ඇත, එය සාමාන්‍ය Deno මොඩියුල මෙන් ම භාවිතා කළ හැක. උදාහරණයක් ලෙස, NPM මොඩියුලයක් ආයාත කිරීම සඳහා, ඔබට "npm:chalk@5";' වෙතින් {හුණු } ආනයනය කරන්න, සහ විධාන රේඛාවෙන් - "deno run --allow-env --allow" වෙතින් NPM ස්ක්‍රිප්ට් එකක් ධාවනය කිරීමට නියම කළ හැක. -කියවන්න npm:create-vite-extra."

Deno හි NPM පැකේජ භාවිතා කිරීම 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 මුදා හැරීමට යාවත්කාලීන කිරීම, අගුලු සහිත ගොනු ස්වයංක්‍රීයව හඳුනාගැනීම, Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ස්ථායීකරණය කිරීම ඇතුළත් වේ. සහ Deno APIs. .uid(), ධාවනය වන විධාන සඳහා නව අස්ථායී API Deno.Command() එකතු කිරීම (Deno.spawn, Deno.spawnSync සහ Deno.spawnChild සඳහා විශ්වීය ආදේශනය).

Deno හි ප්රධාන ලක්ෂණ:

  • ආරක්ෂක-නැඹුරු පෙරනිමි වින්‍යාසය. ගොනු ප්‍රවේශය, ජාලකරණය සහ පරිසර විචල්‍යයන් වෙත ප්‍රවේශය පෙරනිමියෙන් අක්‍රිය කර ඇති අතර ඒවා පැහැදිලිව සක්‍රීය කළ යුතුය. යෙදුම් පෙරනිමියෙන් හුදකලා වැලිපිල්ල පරිසරයන් තුළ ධාවනය වන අතර පැහැදිලි අවසර ලබා නොදී පද්ධති හැකියාවන් වෙත ප්‍රවේශ විය නොහැක;
  • ජාවාස්ක්‍රිප්ට් වලින් ඔබ්බට ටයිප්ස්ක්‍රිප්ට් සඳහා සහය. ටයිප් චෙක් කිරීම සහ ජාවාස්ක්‍රිප්ට් උත්පාදනය සඳහා, සම්මත ටයිප්ස්ක්‍රිප්ට් සම්පාදකය භාවිතා කරයි, එය V8 හි ජාවාස්ක්‍රිප්ට් විග්‍රහ කිරීම හා සසඳන විට කාර්ය සාධනයේ පහත වැටීමකට තුඩු දෙයි;
  • ධාවන කාලය තනි ස්වයං අන්තර්ගත ක්‍රියාත්මක කළ හැකි ගොනුවක ("ඩෙනෝ") ආකාරයෙන් පැමිණේ. Deno භාවිතයෙන් යෙදුම් ධාවනය කිරීම සඳහා, ඔබ ඔබේ වේදිකාව සඳහා ක්‍රියාත්මක කළ හැකි ගොනුවක් බාගත කළ යුතුය, 30 MB පමණ ප්‍රමාණයෙන්, බාහිර පරායත්තතා නොමැති සහ පද්ධතිය මත විශේෂ ස්ථාපනයක් අවශ්‍ය නොවේ. එපමනක් නොව, deno යනු monolithic යෙදුමක් නොව, වෙනම භාවිතා කළ හැකි Rust crate පැකේජ (deno_core, rusty_v8) එකතුවකි;
  • වැඩසටහන ආරම්භ කිරීමේදී මෙන්ම මොඩියුල පැටවීමේදී, ඔබට URL ලිපිනය භාවිතා කළ හැකිය. උදාහරණයක් ලෙස, welcome.js වැඩසටහන ක්‍රියාත්මක කිරීම සඳහා, ඔබට “deno https://deno.land/std/examples/welcome.js” විධානය භාවිතා කළ හැකිය. බාහිර සම්පත් වලින් කේතය බාගත කර දේශීය පද්ධතියට හැඹිලිගත කර ඇත, නමුත් කිසි විටෙකත් ස්වයංක්‍රීයව යාවත්කාලීන නොවේ (යාවත්කාලීන කිරීම සඳහා “--reload” ධජය සමඟ යෙදුම පැහැදිලිව ක්‍රියාත්මක කිරීම අවශ්‍ය වේ);
  • යෙදුම්වල HTTP හරහා ජාල ඉල්ලීම් කාර්යක්ෂමව සැකසීම; වේදිකාව නිර්මාණය කර ඇත්තේ ඉහළ කාර්ය සාධන ජාල යෙදුම් නිර්මාණය කිරීම සඳහාය;
  • Deno සහ සාමාන්‍ය වෙබ් බ්‍රව්සරය තුළ ක්‍රියාත්මක කළ හැකි විශ්වීය වෙබ් යෙදුම් නිර්මාණය කිරීමේ හැකියාව;
  • සම්මත මොඩියුල කට්ටලයක් තිබීම, ඒවා භාවිතා කිරීම බාහිර පරායත්තතා වලට බැඳීමක් අවශ්‍ය නොවේ. සම්මත එකතුවෙන් මොඩියුල අතිරේක විගණනය සහ අනුකූලතා පරීක්ෂණයට භාජනය වී ඇත;
  • ධාවන කාලයට අමතරව, Deno වේදිකාව පැකේජ කළමනාකරු ලෙසද ක්‍රියා කරන අතර කේතය තුළ ඇති URL මගින් මොඩියුල වෙත ප්‍රවේශ වීමට ඔබට ඉඩ සලසයි. උදාහරණයක් ලෙස, මොඩියුලයක් පූරණය කිරීම සඳහා, ඔබට "https://deno.land/std/log/mod.ts" වෙතින් ලොග් ලෙස "ආයාත කරන්න * කේතයෙහි සඳහන් කළ හැක. URL හරහා බාහිර සේවාදායකයන්ගෙන් බාගත කළ ගොනු හැඹිලිගත කර ඇත. මොඩියුල අනුවාදවලට බැඳීම තීරණය වන්නේ URL එක තුළ අනුවාද අංක සඳහන් කිරීමෙනි, උදාහරණයක් ලෙස, “https://unpkg.com/[විද්‍යුත් ආරක්‍ෂිත]/dist/liltest.js";
  • ව්‍යුහයට ඒකාබද්ධ පරායත්ත පරීක්ෂණ පද්ධතියක් (“deno info” විධානය) සහ කේත හැඩතල ගැන්වීම සඳහා උපයෝගීතාවයක් (deno fmt) ඇතුළත් වේ;
  • සියලුම යෙදුම් ස්ක්‍රිප්ට් එක JavaScript ගොනුවකට ඒකාබද්ධ කළ හැක.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න