Tauri シェル
デスクトップシェルは Tauri 2 上に構築されています。ネイティブウィンドウを所有し、バックエンドを起動し、2 つが一緒にシャットダウンすることを保証します。
シェルの役割
シェルは 3 つのことを行います:
- サイドカーをスパウン します — 自己完結型 Node.js バックエンドプロセスを開始し、ローカル API の準備ができるまで待ってからウェブビューを開きます。死んだサーバーを指す半分読み込まれたウィンドウを見ることは決してありません。
- ウェブビューをホスト します — 本番 Web アプリは Tauri ウェブビュー内で実行され、ランダムな空きポートの
127.0.0.1でバックエンドと通信します。 - ライフサイクルを所有 します — ウィンドウイベントとプロセスイベントが配線され、バックエンドとシェルが常に 1 つのユニットとして終了します。
ウィンドウのライフサイクル
- 閉じる — ウィンドウを閉じるとサイドカーの正常なシャットダウンがトリガーされます。バックエンドはきれいに停止するよう求められ、アプリは終了前にそれを待ちます。孤児の Node.js プロセスは残りません。
- バックエンドのクラッシュ — サイドカーが予期せず終了した場合、シェルは何もできないウィンドウを表示する代わりにエラーで終了します。通常の終了は別途マークされるため、クリーンなシャットダウンがクラッシュと誤認されることはありません。
- 再起動 — アプリを再起動するとサイドカーがゼロから再スパウンされます。状態はプロセスではなくデータディレクトリに存在するため、再起動は無損失です。
ウィンドウが API
シェルはコンテンツを表示する前に API を待つため、初回起動は即座に感じられます: ウィンドウは準備のできたアプリケーションで開きます。バックエンドは一時ポートの 127.0.0.1 のみでリッスンするため、ネットワークに露出するものはありません。
アップデーター統合
リリースビルドは Tauri アップデーターを統合します。シェルはコアアップデートをチェックし、マニフェストと minisign 署名を検証し、プラットフォームアーティファクトをインストールし、再起動できます。アップデーターはユーザーのデータディレクトリとは別にコアを置き換え、署名のないダウングレードは拒否されます。アップデートエンドポイントと公開鍵なしで作られたビルドは完全に機能しますが、アップデートが設定されていないと報告します。
開発ビルド
開発用に、同じシェルは開発サーバーとローカルで起動したバックエンドに対して実行できます。本番の保証 — サイドカーはウィンドウとともに終了する — はパッケージ化されたビルドに適用され、pnpm desktop:dev はシェルを実行中の開発プロセスに配線します。
サイドカーのバンドルと管理方法はNode サイドカー を参照してください。