Deno 2.9, izlaista 25. jūnijā, pievieno komandu deno desktop, kas no gatava tīmekļa projekta uzbūvē instalējamu darbvirsmas lietotni. Pietiek norādīt uz projekta sakni — dzinējs pats atpazīst ietvaru un izveido failu, ko lietotājs var uzstādīt tāpat kā jebkuru citu programmu.
Tā ir tieša atbilde Electron un Tauri. Deno komanda to atklāti dēvē par eksperimentālu funkciju, un daļa API vēl mainās, tāpēc pagaidām to vērts skatīt kā priekšskatījumu, nevis stabilu rīku.
Kā tas strādā
deno desktop automātiski atpazīst deviņus tīmekļa ietvarus: Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start un Vite SSR. Koda izmaiņas nav vajadzīgas — pietiek ar norādi uz projektu. Var padot arī vienu TypeScript failu.
Pamata izsaukums ir īss:
deno desktop main.ts— būvē ar vietējo WebView pašreizējai operētājsistēmaideno desktop --backend cef main.ts— iepako Chromiumdeno desktop --output MyApp.dmg main.ts— norāda izvades failudeno desktop --all-targets main.ts— kompilē visām platformām uzreiz
Izvade ir katras operētājsistēmas pašas formāts. macOS gadījumā tas ir .app un .dmg, Windows — .exe vai .msi, Linux — .AppImage, .deb vai .rpm. Karogs --all-targets aptver piecas platformas: Linux x64 un arm64, Windows x64, macOS x64 un arm64. Tas nozīmē, ka izstrādātājs var no viena Mac vai Linux datora izlaist instalatorus visām trim galvenajām sistēmām, nemeklējot atsevišķu build mašīnu katrai. Sīkāk komandas aprakstītas Deno 2.9 paziņojumā.
Trīs renderēšanas dzinēji
Šeit slēpjas galvenā izvēle. Pēc noklusējuma deno desktop izmanto operētājsistēmas iebūvēto WebView — WebView2 uz Windows un WebKit uz macOS un Linux. Neko papildu nepievieno, tāpēc būvējums paliek mazs. The Register testā macOS lietotne ar WebView sanāca aptuveni 68,5 MB.
Otrā iespēja ir CEF — iepakots Chromium. Tas garantē vienādu attēlojumu visās platformās, bet cenā. Tajā pašā testā CEF versija bija 308,9 MB, lai gan Deno dokumentācija par tipisku norāda ap 150 MB. Trešais režīms ir “raw”: tīmekļa dzinēja nav vispār, un izstrādātājs pats pārvalda logu un zīmē caur WebGPU, Skia vai savu pieeju.
WebView tur būvējumu mazu un ātri palaižamu; CEF pievieno desmitiem megabaitu un lejupielādi būvēšanas laikā, taču nodrošina identisku attēlojumu. Tā izvēli apraksta Deno komanda 2.9 paziņojumā.
Ko lietotne var uz darbvirsmas
Web koda vien nepietiek, lai lietotne justos vietējā. Deno 2.9 pievieno vairākus darbvirsmas API. Deno.BrowserWindow pārvalda logu, izvēlnes un DevTools tiltu. Deno.Tray liek ikonu sistēmas teknē, Deno.Dock strādā ar macOS doku. Deno.autoUpdate() ir aptaujas atjauninātājs ar binārajām ielāpēm, tātad lietotne var pati paņemt jaunāku versiju bez pilnas pārinstalēšanas.
Šie API atrisina to, ko tīra tīmekļa lapa uz darbvirsmas nevar: logu vietā pārlūka cilnes, ikonu teknē, atjauninājumu, kas nāk pats. Tieši šī daļa parasti liek izstrādātājiem pievērsties Electron vai Tauri, tāpēc Deno tos ietver jau bāzē, nevis atstāj bibliotēku ziņā.
Kur tas vēl klibo
Eksperimentālais statuss nav formalitāte. The Register uzskaita konkrētas nepilnības: uz macOS ar WebView loga aizvēršanas poga nedarbojas, trūkst failu izvēles dialogu (izņemot web ievades tipus un vilkšanu ar peli), vēl nav vietējā starpliktuves API, un mobilā atbalsta nav. Kurš no šiem šķēršļiem sāp visvairāk, atkarīgs no lietotnes.
Praksē tas nozīmē, ka desktopa lietotni ar deno desktop šodien var uzbūvēt un parādīt, bet ne vēl bez piezīmēm nogādāt lietotājiem. Deno dokumentācija sadaļā Desktop apps šos ierobežojumus uzskaita atklāti.
Vai Deno neaizraujas ar Node.js panākšanu
Šī funkcija iekļaujas plašākā tendencē. Deno 2.9 pievienoja arī pirmšķirīgu migrāciju no npm, pnpm, yarn un Bun, CSS moduļu importu un Node.js 26 saderību. Daļa izstrādātāju to vērtē skeptiski: viens The Register komentētājs izteica bažas, ka Deno arvien vairāk enerģijas velta Node.js panākšanai, nevis savai sākotnējai atšķirībai.
Iebildums ir vietā. Jo vairāk Deno atkārto Node.js iespējas, jo grūtāk pateikt, kāpēc pāriet. Darbvirsmas būvēšana ir cita saruna — Electron un Tauri tur jau ir iesēdušies, un Deno piedāvā mazāku būvējumu ar vietējo WebView, tomēr bez failu dialoga un starpliktuves tam pagaidām grūti sacensties. Deno komanda funkciju atzīmē kā eksperimentālu jau 2.9 laidienā, un stabilai versijai datums pagaidām nav nosaukts.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.