发布 Tauri 1.1.0
经过113次拉取请求和近两个月的工作,Tauri 团队很高兴地宣布 1.1.0 版本发布。这些更改经过内部审计,未发现任何安全问题。
您可以使用以下命令更新依赖项:
npm install @tauri-apps/cli@latest @tauri-apps/api@latest
yarn upgrade @tauri-apps/cli @tauri-apps/api --latest
pnpm update @tauri-apps/cli @tauri-apps/api --latest
cargo update
此版本包含一个由 @martin-ocasek 报告的安全漏洞补丁。readDir
函数在找到符号链接时能够返回配置范围之外的条目。此补丁也已在 Tauri 1.0.6 中提供。更多详情请参见 GitHub 上的问题。
我们一直建议使用 tauricon 项目,通过一个源 PNG 文件为您的 Tauri 应用程序生成图标。由于报告了一些问题,我们决定“用 Rust 重写”以增强其稳定性。这使得我们能够将此功能移至主 Tauri CLI,所以现在您可以使用 tauri icon
命令。
Tauri CLI 现在可以使用 cargo-binstall 安装,这是一种下载和安装预构建 Rust 二进制文件的机制。这些二进制文件适用于主要目标,可以通过以下命令安装:
$ cargo install cargo-binstall$ cargo binstall tauri-cli$ cargo tauri dev # run any Tauri command!
系统托盘 API(以前仅在 tauri::Builder::system_tray
中可用)现在可以在运行时与 tauri::SystemTray
一起使用,让您可以控制其生命周期,甚至可以创建多个托盘。
下面是一个快速示例,说明如何使用它:
use tauri::{Builder, CustomMenuItem, SystemTray, SystemTrayEvent, SystemTrayMenu};Builder::default() .setup(|app| { let handle = app.handle(); SystemTray::new() .with_id("main") .with_menu( SystemTrayMenu::new().add_item(CustomMenuItem::new("quit", "Quit")) ) .on_event(move |event| { let tray_handle = handle.tray_handle_by_id("main").unwrap(); if let SystemTrayEvent::MenuItemClick { id, .. } = event { if id == "quit" { tray_handle.destroy().unwrap(); } } }) .build(&handle) .expect("unable to create tray"); });
在 1.0 版本中,Tauri 默认支持 JSON
配置格式,并在启用 config-json5
Cargo 功能时支持 JSON5
,这意味着以下配置有效:
{ "build": { "devPath": "https://:8000", "distDir": "../dist" }}
{ build: { // devServer URL (comments are allowed!) devPath: 'https://:8000', distDir: '../dist', },}
1.1.0 版本包括在 config-toml
Cargo 功能后的 TOML 支持。现在您可以在 Tauri.toml
文件中定义您的 Tauri 配置。
[build]dev-path = "https://:8000"dist-dir = "../dist"
此版本包含一些依赖项更新,如果您使用这些 crate 实现平台特定功能,则必须在您的应用程序中处理这些更新。最重要的更新是:
windows
更新到 0.39.0webview2-com
更新到 0.19.1raw-window-handle
更新到 0.5.0
请确保您也更新了 window-vibrancy
和 window-shadows
等插件到最新版本。
Tauri 团队感谢以下贡献者为 1.1.0 版本的发布所做的贡献:
- Berrysoft
- keraf
- jsoref
- A-kirami
- olivierlemasle
- mateo-gallardo
- rockerBOO
- Flecart
- brian14708
- koriwi
- paul-soporan
- shniubobo
- horochx
- RubenKelevra
- LIMPIX31
- AxlLind
此版本中有很多小的更改和错误修复。您可以在以下部分中查看版本说明的摘要。完整的更新日志可以在发布页面上找到。
tauri icon
命令fs
模块中的exists
API- 使用
tauri dev --no-watch
禁用开发监视器选项 - 自动使用任何
.taurignore
文件作为开发监视器和应用程序路径查找器的忽略规则 - 为 Tauri CLI 添加 cargo-binstall 支持
- TOML 配置格式 (Tauri.toml)
- Linux 上的主题 API
- 运行时创建系统托盘
beforeBundleCommand
配置beforeDevCommand
和beforeBuildCommand
现在有一个选项来配置当前工作目录api::Command::encoding
方法用于设置 stdout/stderr 编码- 添加
native-tls-vendored
和reqwest-native-tls-vendored
Cargo 功能,以便在 Linux 上编译并静态链接到 vendored 的 OpenSSL 副本 - 为
App
和AppHandle
实现raw_window_handle::HasRawDisplayHandle
- CLI 解析器忽略内部子命令。
- 更新器破坏 Finder 中的应用程序图标。
- 修复使用
CodegenContext
API 时代码生成输出的根目录。
- 修复
fs.readDir
递归选项读取超出范围的符号链接目录的问题。
- 根据配置的公钥验证更新器签名
- 如果边车配置与应用程序具有相同的文件名,则返回错误。
- 将创建的窗口保存在 RefCell 中而不是 Mutex 中,避免死锁
- 在
tauri init
中提示beforeDevCommand
和beforeBuildCommand
。 - 使用
cargo metadata
检测工作区根目录和目标目录。 - 允许配置
before_dev_command
,强制 CLI 等待命令完成后再继续。 - 避免在每次构建时重新下载 AppImage 构建工具。
- 在
api::process::restart
中保留命令行参数 - 通过清单依赖项
Microsoft.Windows.Common-Controls v6.0.0.0
增强 Windows 上的对话框样式。 - 如果资产或图标更改,则重新运行代码生成
- 仅当内容更改时才重写临时图标文件,避免不必要的重新构建。
© 2025 Tauri 贡献者。CC-BY / MIT