با deno desktop پروژهت رو دسکتاپی کن
خلاصهٔ کاملتر
تو مستندات دنو اومده که این رانتایم داره تو نسخه ۲.۹ یه دستور جدید به اسم deno desktop معرفی میکنه. این دستور هر پروژه Deno — از یه فایل TypeScript ساده تا یه اپ کامل Next.js — رو به یه برنامه دسکتاپ مستقل تبدیل میکنه. خروجی یه باینریه که کد خودت، رانتایم Deno و موتور رندر وب رو با هم تو یه بسته برای هر پلتفرم جمع میکنه. فعلاً هم فقط رو نسخه canary در دسترسه و هنوز پایدار نشده.
به گفتهٔ مستندات، ایدهٔ اصلی اینه که وب پرکاربردترین ابزار ساخت رابط کاربریه، ولی ابزارهایی مثل Electron و Tauri هرکدوم یه اشکالی دارن: حجم زیاد، پشتیبانی ناقص از بعضی پلتفرمها، نبود اکوسیستم جاوااسکریپت یا نداشتن سیستم آپدیت. این دستور سعی کرده این نقصها رو جبران کنه.
بهصورت پیشفرض از وبویوی خود سیستمعامل استفاده میکنه تا حجم باینری کم بمونه، ولی هنوز کل اکوسیستم npm از طریق لایهٔ سازگاری با Node در دسترسه. اگه بخوای رندر یکسان رو مک، ویندوز و لینوکس داشته باشی، میتونی به بکاند Chromium (CEF) سوییچ کنی. جالبتر اینه که فریمورکهایی مثل Next.js، Astro، Remix، Nuxt و SvelteKit رو خودکار تشخیص میده و بدون تغییر کد اجراشون میکنه.
چندتا ویژگی فنی دیگه هم داره: ارتباط بین بکاند و رابط کاربری بهجای IPC مبتنی بر سوکت از کانالهای درونپردازهای رد میشه؛ از یه ماشین میتونی برای هر سه پلتفرم بیلد بگیری؛ و یه سیستم آپدیت خودکار مبتنی بر diff باینری داره که با یه فایل latest.json و پچهای bsdiff کار میکنه و اگه اجرا خراب شه خودش به نسخهٔ قبل برمیگرده.
سادهترین شکل یه اپ دسکتاپ فقط یه فایله که با Deno.serve() یه پاسخ HTML برمیگردونه:
Deno.serve(() =>
new Response("<h1>Hello, desktop</h1>", {
headers: { "content-type": "text/html" },
})
);بعدش با دستور deno desktop main.ts کامپایلش میکنی و یه پنجره باز میشه که به یه سرور HTTP محلی وصله. خود Deno.serve() هم خودکار به آدرسی که وبویو بهش میره وصل میشه، پس لازم نیست پورت یا هاست رو دستی بدی.
نکات کلیدی:
- deno desktop تو نسخه ۲.۹ میاد و هر پروژه Deno یا اپ وب رو به یه باینری دسکتاپ مستقل تبدیل میکنه
- پیشفرض از وبویوی سیستمعامل استفاده میکنه تا حجم کم بمونه و میتونی به Chromium/CEF سوییچ کنی
- فریمورکهایی مثل Next.js، Remix و SvelteKit رو خودکار تشخیص میده
- از یه ماشین برای مک، ویندوز و لینوکس بیلد میگیری و آپدیت خودکار با bsdiff داره
- فعلاً فقط رو نسخه canary در دسترسه و هنوز پایدار نیست




