
Deno Desktop перетворює проєкти Deno на самодостатні настільні застосунки
У Deno 2.9 з'явилася команда deno desktop, яка компілює проєкти Deno у розповсюджувані настільні бінарники. Документація протиставляє її Electron і Tauri, наголошуючи на малих розмірах і вбудованих оновленнях.
Deno представила deno desktop — команду, яка перетворює проєкт на Deno, від одного файлу TypeScript до застосунку на Next.js, на самодостатню настільну програму. Результат — розповсюджуваний бінарний файл, що об'єднує код проєкту, середовище Deno та рушій вебререндерингу в один пакет для кожної платформи. Функція доступна починаючи з Deno 2.9.0.
Протиставлення Electron і Tauri
У документації інструмент подано як відповідь на компроміси наявних вебстеків — Electron, Tauri та Electrobun: великі бінарники, неповна підтримка платформ, обмежений доступ до екосистеми JavaScript, відсутність вбудованого механізму оновлень і відсутність інтеграції з фреймворками. Відповідь Deno конкретна: типовий бекенд WebView використовує власне вебвікно операційної системи, тож бінарники залишаються малими, а вся екосистема npm доступна через шар сумісності з Node. Тим, кому потрібне ідентичне відображення на macOS, Windows і Linux, доступний вбудований бекенд Chromium на базі CEF.
Розпізнавання фреймворків і внутрішньопроцесні зв'язки
Якщо вказати на проєкт Next.js, Astro, Fresh, Remix, React Router, Nuxt, SvelteKit, SolidStart, TanStack Start або Vite SSR, команда запускає продакшн-сервер у режимі release або сервер розробки з гарячим перезавантаженням за допомогою --hmr; більшості фреймворків спеціальний адаптер не потрібен. Обмін між бекендом та інтерфейсом відбувається через внутрішньопроцесні канали, а не через сокетний IPC: значення все одно кодуються на межі виклику, але міжпроцесного обміну між кодом Deno та вебвікном немає. З однієї машини можна збирати застосунки для macOS, Windows і Linux, а бекенди завантажуються за потреби, а не компілюються локально.
Оновлення і робочий приклад
Автоматичне оновлення вбудоване: достатньо одного маніфесту latest.json і патчів bsdiff, а середовище виконання саме опитує сервер, застосовує зміни й автоматично відкочується, якщо запуск не вдався. Мінімальний застосунок — це один файл із викликом Deno.serve(); скомпільований бінарник відкриває вікно, що вказує на цей локальний HTTP-сервер, а Deno сам прив'язується до адреси, на яку переходить вебвікно, тож порт чи хостенейм задавати не потрібно. Як повний приклад документація наводить denidian — застосунок для нотаток у стилі Obsidian з Markdown, вікі-посиланнями та графом зв'язків, що охоплює керування вікнами через Deno.BrowserWindow, меню застосунку, розробку з --hmr і пакування для розповсюдження.
Документація також описує налаштування через блок desktop у deno.json, бекенди CEF, webview і raw, HTTP-сервінг, вимоги до фреймворків, життєвий цикл вікон і події, рендеринг через WebGPU, прив'язки, меню, інтеграцію з треєм і доком, нативні діалоги та сповіщення, DevTools, звітування про помилки, кроскомпіляцію та інсталятори.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.