在 Tauri 中,应用的行为、安全策略和打包方式都由一个集中的配置文件管理——通常是项目根目录下的 tauri.conf.json。下面我们重点拆解三个核心配置域:权限白名单、资源路径和构建配置,用最直接的方式说明它们的作用和常见设置。
权限白名单配置
这是 Tauri 安全模型的核心。默认情况下,前端 JavaScript 代码被严格隔离在 WebView 沙箱里,不能调用任何系统级 API。所有需要访问文件系统、网络、剪贴板、系统通知等能力的操作,都必须通过配置“白名单”来显式开启。
在 tauri.conf.json 中,这部分配置集中在 tauri.allowlist 字段下,例如:
{
"tauri": {
"allowlist": {
"fs": {
"readFile": true,
"writeFile": true,
"scope": ["$DOCUMENT/*"]
},
"shell": {
"open": true
},
"notification": {
"all": true
}
}
}
}
fs:控制文件读写,可以进一步限定作用域(scope)来限制前端只能访问指定目录,比如$DOCUMENT/*允许访问文档目录下的所有文件。shell:是否允许用系统默认程序打开 URL 或本地文件。notification:控制系统级通知的权限。- 还有
clipboard(剪贴板)、http(发起 HTTP 请求)、dialog(文件对话框)等多种权限模块。
实用提示:
永远遵循“默认关闭,按需开启”原则。即使你只是想实现一个“保存文件”功能,也只需要开启 fs.writeFile 并设置合适的 scope,而不是直接把整个 fs 模块全部打开。这样可以大幅降低潜在的安全风险。
资源路径
资源路径决定了 Tauri 前端页面和静态文件从哪里加载,以及构建时如何打包。如果使用 Vite 等现代前端工具,通常不需要大幅修改这里的配置,但理解它们有助于排查打包后资源加载失败的问题。
在 tauri.conf.json 中,与资源相关的配置主要在 build 和 tauri.windows 下:
{
"build": {
"devPath": "http://localhost:1420",
"distDir": "../dist"
},
"tauri": {
"windows": [
{
"url": "index.html",
"title": "我的应用"
}
]
}
}
build.devPath:开发模式下前端地址。通常指向 Vite 或 Webpack 的本地开发服务器,实现热更新。build.distDir:生产构建时,Tauri 会从这个目录读取前端文件(HTML、JS、CSS、图片等)并打包进安装包。该路径是相对于tauri.conf.json文件的位置。tauri.windows[].url:指定窗口加载的入口文件。通常是distDir中的index.html。
常见问题与解决:
如果打包后页面白屏,优先检查 distDir 路径是否正确,以及前端构建后的文件是否确实生成到了该目录内。确保 index.html 中的资源引用使用的是相对路径,而不是绝对路径或本地开发服务器地址。
构建配置
构建配置决定了 Tauri 如何编译 Rust 后端、如何打包安装包、以及安装包的元信息(如版本号、应用名称、包标识符等)。这部分配置集中在 tauri.bundle 和 package 顶层字段中。
{
"package": {
"productName": "我的桌面工具",
"version": "1.0.0"
},
"tauri": {
"bundle": {
"active": true,
"icon": [
"icons/32x32.png",
"icons/128x128.png"
],
"identifier": "com.example.myapp",
"targets": ["deb", "appimage", "msi", "dmg"],
"windows": {
"wix": {
"language": "zh-CN"
}
}
}
}
}
package.productName和package.version:定义最终生成的可执行文件名称和版本号,会写入安装包的元数据。bundle.active:是否开启打包功能(建议保持true)。bundle.identifier:应用程序的唯一标识(反向域名格式),用于操作系统的应用管理。bundle.targets:指定生成哪些安装包格式。例如deb用于 Debian/Ubuntu,appimage用于 Linux 便携包,msi用于 Windows,dmg用于 macOS。bundle.icon:应用图标资源路径,至少需要提供多个尺寸以适配不同分辨率。- 打包格式的特殊配置(如 Windows 的
wix)可以进一步定制安装界面的语言、许可协议等。
实用提示:
第一次执行 tauri build 时,系统环境需要满足各平台的构建依赖(如 Windows 需要 WebView2 运行时,但 Tauri 会自动下载或提示安装)。如果遇到构建失败,先检查 Rust 工具链是否完整(rustup 推荐的稳定版),并确保 distDir 已生成正确的产物。
小结:这三项配置是 Tauri 项目从开发到上线的“控制面板”。权限白名单管安全,资源路径管前端加载,构建配置管打包与分发。理解了它们,你就掌握了 Tauri 应用绝大部分的行为定制。