deno desktop Deno プロジェクト (単一の TypeScript ファイルから Next.js アプリまで) を自己完結型のデスクトップ アプリケーションに変換します。出力は、コード、Deno ランタイム、および Web レンダリング エンジンをプラットフォームごとに 1 つのバンドルにバンドルする再配布可能なバイナリです。
deno 2.9で登場
deno desktop Deno は v2.9.0 で利用可能ですが、まだ安定リリースではありません。今すぐ試してみるには、実行してください deno upgrade canary 確立する
canary 構築コマンド、構成キー、TypeScript API は、機能が安定する前に変更される可能性があります。
なぜ deno desktop
Web テクノロジーは、世界で最も広く知られている UI ツールキットです。 Web スタック上に構築されたデスクトップ アプリ (Electron、Tauri、Electrobun) はこれを利用していますが、それぞれに、巨大なバイナリ、プラットフォーム サポートの不足、JavaScript エコシステムの欠如、組み込みの更新ストーリーの欠如、フレームワーク統合の欠如など、いくつかのトレードオフを考慮する必要があります。
deno desktop これらのトレードオフについての意見は次のとおりです。
- デフォルトでは小さく、完全なノード互換性。 デフォルトの WebView バックエンドは、小さなバイナリに対してオペレーティング システム独自の WebView を使用しますが、Deno の Node Compat レイヤーを通じて NPM エコシステム全体を利用できます。 macOS、Windows、Linux 全体で均一なレンダリングが必要な場合は、バンドルされている Chromium (CEF) バックエンドを選択してください。
- フレームワークの自動検出。 ポイント
deno desktopNext.js、Astro、Fresh、Remix、Next、SwellKit、SolidStart、Tanstack Start、または White SSR プロジェクトで実行されます: リリース モードの運用サーバー、ホット リロードを備えた開発サーバー--hmr。既存の Web プロジェクトをデスクトップに移動するためにコードを変更する必要はありません。 - IPC の代わりにインプロセス バインディング。 バックエンドと UI の通信は、ソケットベースの IPC ではなく、インプロセス チャネルを通じて行われます。値は呼び出し境界を越えるときにもエンコードされますが、Deno コードと Web ビューの間でクロスプロセスの往復は発生しません。
- 1 台のマシンからのクロスコンパイル。 同じマシンで macOS、Windows、Linux 用に構築できます。バックエンドはローカルに構築されるのではなく、必要に応じてダウンロードされます。
- 組み込みのバイナリ差分自動更新。 単一のものを送信する
latest.jsonマニフェストと bsdiff パッチ。ランタイムは、起動に失敗した場合に自動的にポーリング、適用、ロールバックします。
こんにちは、デスクトップ
1 つのファイルのデスクトップ アプリを作成します。
main.ts
Deno.serve(() =>
new Response("", {
headers: { "content-type": "text/html" },
})
);
コンパイルされたバイナリにより、接続されているローカル HTTP サーバーを指すウィンドウが開きます。
Deno.serve() ハンドラ。直接実行します。
Deno.serve() Web ビューが移動するアドレスに自動的にバインドされるため、ポートやホスト名を渡す必要はありません。詳細については、「HTTP サービス」を参照してください。
このセクションの内容
- 構成:
desktop停止
deno.json。 - バックエンド: CEF、WebView、RAW;選び方は?
- HTTPサービス:
Deno.serve()統合とサービス モデル。 - フレームワーク: Next.js、Astro、Fresh、Remix、Next、Swellkit など。
- Windows:
Deno.BrowserWindowライフサイクル、複数のウィンドウ、イベント。 - バインディング: WebView から deno コードを呼び出す
bindings.。() - メニュー: アプリケーションとコンテキスト メニュー。
- トレイとドック: システム ステータス アイコンと macOS ドック。
- 対話:
prompt()、alert()、confirm()ネイティブポップアップとして。 - 通知: Web 経由の基本的な OS 通知
NotificationAPI。 - ホットモジュール交換:
--hmrフレームワーク アプリと非フレームワーク アプリの場合。 - DevTools: Deno ランタイムと WebView の両方に関連付けられた統合 DevTools。
- 自動更新:
Deno.autoUpdate()マニフェスト、bsdiff、ロールバック。 - エラーレポート: 観察されていない例外とパニックをキャプチャします。
- 配布: クロスコンパイル、出力形式、インストーラー。
- 比較:どうやって
deno desktop電子、トリ、エレクトロブン、ディオクサスが関連しています。 deno desktopCLI リファレンス: コマンド、そのフラグ、およびdeno.jsondesktopスキーマ。










Leave a Reply