Tauri 2 + React + TypeScript + Vite で構築した Misskey 向けデスクトップブラウザです。
現在は https://misskey.io のみをアプリ内 WebView で開き、それ以外の http/https 遷移や新規ウィンドウ要求は既定の外部ブラウザへ委譲する構成になっています。
- 起動時に
misskey.ioをメインウィンドウで開く - ウィンドウタイトルをページタイトルに追従させる
https://misskey.ioだけを WebView 内で許可するmisskey.io以外へのhttp/https通常遷移を外部ブラウザで開くwindow.openなどの別窓要求でmisskey.io以外へ出る場合も外部ブラウザで開く- 非
http/httpsスキームの遷移は WebView 内で拒否する - Tauri の capability は
mainウィンドウにだけ割り当て、IPC 権限は付与しない
- Tauri 2
- TypeScript 5
- Vite 8
- Rust 2021
- pnpm + Volta
フロントエンドは軽量化のため、React を使わず最小の Vite + TypeScript 構成にしています。
ローカル開発は主に Windows を想定しています。
- Node.js
24.14.0 - pnpm
10.32.1 - Rust stable
- WebView2 Runtime
- Microsoft C++ Build Tools
package.json に Volta 設定があるため、Volta を使うと Node.js / pnpm の版を合わせやすくなります。
volta install node@24.14.0
volta install pnpm@10.32.1
rustup update stable
pnpm installバージョン確認:
node --version
pnpm --version
rustc --version
pnpm exec tauri --versionフロントエンドのみ起動:
pnpm devTauri アプリとして起動:
pnpm tauri:devpnpm build
pnpm tauri:buildpnpm build と pnpm typecheck は tsc -b を使うため、2 系統の TypeScript 設定をインクリメンタルにまとめて検査します。
主な生成先:
dist/src-tauri/target/release/src-tauri/target/release/bundle/
pnpm dev: Vite 開発サーバーpnpm build: TypeScript チェック + Vite 本番ビルドpnpm lint: ESLintpnpm typecheck: TypeScript 型チェックpnpm format: Prettier チェックpnpm format:write: Prettier 整形pnpm tauri: Tauri CLIpnpm tauri:dev: Tauri 開発起動pnpm tauri:build: Tauri 本番ビルド
GitHub Actions の .github/workflows/tauri-action.yml で、release ブランチへの push または手動実行時にリリース用ビルドを作成します。
- macOS
- Ubuntu 24.04
- Windows
生成された成果物は GitHub Release の draft に添付されます。
src-tauri/src/main.rs: WebView の起動とナビゲーション制御src-tauri/capabilities/main-window.json:mainウィンドウ向けの最小 capabilitysrc-tauri/tauri.conf.json: Tauri 設定package.json: Node.js / pnpm / スクリプト定義