Tauri 桌面应用从入门到打包的实操指南
【免费下载链接】tauriBuild smaller, faster, and more secure desktop and mobile applications with a web frontend.项目地址: https://gitcode.com/GitHub_Trending/ta/tauri
上周把内部 Electron 工具迁到 Tauri 后,安装包从 90 多 MB 降到 11 MB,Rust 侧还顺手接管了文件监听逻辑。这个变化来自 Tauri 的桌面应用打包与前后端通信机制:前端照常写 Web,原生能力由 Rust 二进制承载,窗口则复用系统 WebView。读完这篇,你可以完成三件事:
- 在任意一台机器上把 Tauri 环境装好并跑通首个应用
- 看懂
tauri.conf.json里真正影响体验的几个配置项 - 独立执行一次完整打包,并处理新手最常见的三类报错
先说清 Tauri 是什么
Tauri 是一个用 Rust 写后端、用任意 Web 技术写界面的跨平台桌面应用框架。三个有依据的锚点:
- 体积小:官方示例中,应用本体只是编译出的 Rust 二进制加 WebView 中加载的 HTML/JS/CSS,不打包浏览器内核;
- 零额外运行时依赖:渲染分别使用 macOS/iOS 的 WKWebView、Windows 的 WebView2、Linux 的 WebKitGTK,都是系统组件;
- 权限白名单:前端调用原生能力需经 IPC 命令并受 capability 权限控制,而非默认全部放行。
环境要求与最快启动路径
| 平台 | 最低版本 | 渲染组件 |
|---|---|---|
| Windows | 7+ | WebView2 |
| macOS | 10.15+ | WKWebView |
| Linux | webkit2gtk 4.1(如 Ubuntu 22.04) | WebKitGTK |
先装好 Rust 与 Node.js,然后用脚手架创建项目(yarn、pnpm 用户把npm换成对应包管理器即可):
npm create tauri-app@latest进入项目目录后,npm run tauri dev启动开发模式(首次运行要编译全部 Rust 依赖,耐心等待),npm run tauri build则直接产出发布包。
必须看懂的配置项
所有配置集中在src-tauri/tauri.conf.json。字段很多,但只有三处最直接影响你的日常:
{ "build": { "frontendDist": "dist" }, "app": { "windows": [{ "width": 800, "height": 600 }] }, "bundle": { "targets": "all" } }build.frontendDist:管前端产物位置。怎么改:填你前端构建输出目录(如dist);配错会怎样:开发窗口白屏,或发布包里是空壳。app.windows:管首窗的标题与尺寸。怎么改:调整width、height、resizable;配错会怎样:窗口过小装不下内容,或启动后无法拖拽。bundle.targets:管出哪些安装包。怎么改:从"all"收窄为["dmg", "appimage"];配错会怎样:构建出你不需要的格式,白等几十分钟。
下一步:加一个自己的功能
最典型的进阶动作,是在 Rust 里加一个命令供前端调用。在src-tauri/src/main.rs中定义函数,并注册到invoke_handler:
#[tauri::command] fn greet(name: &str) -> String { format!("Hello, {name}!") } tauri::Builder::default() .invoke_handler(tauri::generate_handler![greet])前端拿到invoke后一行调通:invoke('greet', { name: 'Tauri' })。注意参数名从驼峰转 snake_case(name不变,但user_name在前端要写userName)。
打包发布
开发满意后执行一次打包:
npm run tauri build各平台安装包会落在src-tauri/target/release/bundle下:Windows 出.exe/.msi,macOS 出.app/.dmg,Linux 出.deb/.rpm/.AppImage。只想要其中某几种,就把上一节里的bundle.targets收窄。
新手最常踩的三坑
Q:Linux 上窗口打不开,日志提示加载 webkit2gtk 失败?大概率是版本低于 4.1。Tauri 2 需要 webkit2gtk 4.1,老发行版(如 Ubuntu 20.04)默认是 4.0,升级到满足要求的系统或源即可。
Q:开发窗口打开但一片白?九成是frontendDist指错了。它必须是构建产物的目录(dist或out),指向源码目录时 WebView 加载不到入口 HTML。
Q:invoke调用没反应或报command not found?确认命令已经写进generate_handler![...],且前后端参数命名一致:Rust 侧user_name对应前端userName。
接着往哪走
- 架构原理:ARCHITECTURE.md
- 可运行的完整示例集:examples/
- 全量配置字段:tauri.config.schema.json
【免费下载链接】tauriBuild smaller, faster, and more secure desktop and mobile applications with a web frontend.项目地址: https://gitcode.com/GitHub_Trending/ta/tauri
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考