Tauri 1.x和2.x的区别对照表

下面是 按模块分组Tauri 1.x → 2.x(即 1.0 → 2.0)详尽变化对照表(Markdown 格式)


配置(tauri.conf.json / tauri.conf.json5)

模块 1.x(旧)配置项 2.x(新)配置项或行为 说明 / 迁移建议
顶层结构 package > productName, package > versiontauri 移至 顶层对象 (即与 appbundle 同级) (Tauri) "package": { "productName": "...", "version": "..." } 变为 "productName": "...", "version": "..."
二进制命名 可执行文件名自动与 productName 同名 不再自动重命名;如果你需要重命名,必须加顶层 "mainBinaryName": "<name>" (Tauri) 若你之前依赖了自动重命名,则现在显式加这个字段
package 节点 配置中含 "package": { ... } package 对象被移除 (Tauri) 删除该节点
根键名 配置中常见 tauri: { ... } 根键改为 app: { ... },原 tauri 下多数配置移入 app (Tauri) 将原来 tauri: 前缀改为 app:
白名单机制 tauri > allowlist: { ... } 移除 allowlist; 使用新的权限体系(permissions/scopes/abilities) (Tauri) 删除 allowlist 节点,改用新机制
协议资源配置 tauri > allowlist > protocol > assetScope 移至 app > security > assetProtocol > scope (Tauri) 更新配置路径
CLI 插件配置 tauri > cli: { ... } 移至 plugins > cli (Tauri) tauri.conf.json 中调整对应位置
窗口拖放(旧) tauri > windows > fileDropEnabled 重命名为 app > windows > dragDropEnabled (Tauri) 更新字段名称
更新器(旧) tauri > updater > active, tauri > updater > dialog activedialog 字段移除;整个 tauri > updater 移至 plugins > updater (Tauri) 若使用自动更新功能,改为插件配置
系统托盘 tauri > systemTray: { ... } 移为 app > trayIcon: { ... } (Tauri) 更新对应节点
打包配置位置 tauri > bundle: { ... } bundle 移至顶层对象(与 app 同级) (Tauri) 修改路径结构
打包配置细节 -- macOS DMG tauri > bundle > dmg 移至 bundle > macOS > dmg (Tauri) 更新路径
打包配置细节 -- Linux deb/appimage tauri > bundle > deb / appimage 移至 bundle > linux > deb / bundle > linux > appimage (Tauri) 更新路径
许可证文件字段 tauri > bundle > macOS > license etc. 移除旧字段,改用 bundle > licenseFile (Tauri) 统一许可证字段
WebView 运行时路径(Windows) tauri > bundle > windows > webviewFixedRuntimePath 移除,改用 bundle > windows > webviewInstallMode (Tauri) 更新字段名称
构建字段 -- 前端输出目录 build > distDir 重命名为 frontendDist (Tauri) 更新字段名称
构建字段 -- 开发路径 build > devPath 重命名为 devUrl (Tauri) 更新字段名称

Rust API 变化

模块 1.x(旧)API 2.x(新)/变更 说明 / 迁移建议
tauri::api 模块 大量功能集中在 tauri::api::... 下,如 tauri::api::file, tauri::api::http, tauri::api::process, tauri::api::shell等 (Tauri) tauri::api 模块整体移除;对应功能多转为插件或者用 Rust 标准库/新模块代替 (Tauri) 检查所有对 tauri::api 的引用,替换为新方式
文件系统 tauri::api::file 移除 → 使用 Rust 标准库 std::fstauri-plugin-fs 插件 (Tauri) 更新代码路径
进程/Shell tauri::api::process::current_binary, tauri::api::process::restart, tauri::api::process::Command, tauri::api::shell, tauri::Manager::shell_scope 部分 API 移至 tauri::process;其他移为 tauri-plugin-shell 插件 (Tauri) 更新引用,安装/使用插件
路径解析 tauri::api::path + tauri::PathResolver 移为 tauri::Manager::path 方法调用 (Tauri) 更新代码使用方式
菜单/托盘 API Menu, SystemTray, SystemTrayHandle, MenuItem 多数移除或重构为 tauri::menu, tauri::tray 模块 (Tauri) 更新引用路径与 API 用法
窗口 API Window, WindowBuilder, WindowUrl 重命名为 WebviewWindow, WebviewWindowBuilder, WebviewUrl; Manager::get_windowget_webview_window (Tauri) 更新窗口相关代码
插件初始化 API Plugin::setup_with_config, Plugin::PluginApi old style Plugin::setup_with_config 被移除;Plugin::PluginApi 接收第二个参数为配置对象 (HackMD) 更新插件实现代码

JS/TS(前端)API 变化

模块 1.x(旧)API模块/方法 2.x(新)/变更 说明 / 迁移建议
核心模块名称 @tauri-apps/api/tauri 重命名为 @tauri-apps/api/core (Tauri) 更新 import,比如: import { invoke } from "@tauri-apps/api/core";
内建模块迁移为插件 @tauri-apps/api/dialog, clipboard, fs, http, shell, process 多数移为 @tauri-apps/plugin-... 系列插件 (Tauri) 安装并使用新的插件包,如: @tauri-apps/plugin-dialog
模块名称更改 @tauri-apps/api/window@tauri-apps/api/webviewWindow (Tauri) 更新 import 路径
环境变量名称更改 多个 TAURI_... 环境变量重命名(如 TAURI_PATH_DEPTHTAURI_CLI_CONFIG_DEPTH) (Tauri) 检查构建/脚本中的环境变量引用
事件系统变更 listen_globallisten_anyemit 行为变更;新增 emitTo 等方法 (Tauri) 若使用事件监听/emit,确认 API 使用方式

插件系统/模块拆分

模块 1.x(旧)结构 2.x(新)/变更 说明 /迁移建议
核心功能内建 多数功能直接内建在 Tauri 核心(如 shell、fs、dialog、http) 在 2.x 中这些转为官方插件 (如 tauri-plugin-shell, tauri-plugin-fs 等) (Tauri) 安装并在 Cargo.tomlpackage.json 中添加插件相关依赖
插件初始化方式 老 API 插件初始化方式较为固定 新版本插件初始化有变化,如 Plugin::setup_with_config 被移除 (HackMD) 更新 Rust 端插件初始化代码
多 WebView 支持 较少提及 引入"多 webview"支持(目前为不稳定/实验特性) (Tauri) 如果使用多 webview 功能,需要启用对应 feature 并测试
打包/Updater 插件 Updater 功能可能内建或部分依赖旧方式 迁移为 tauri-plugin-updater 插件 (Tauri) 安装插件,更新相关配置

安全/权限 模型变化

模块 1.x(旧)机制 2.x(新)机制 /变更 说明 /迁移建议
白名单机制 使用 allowlist(白名单)机制控制 API 访问权限,如 tauri > allowlist 节点 (Tauri) 更换为 "permissions / scopes / abilities" 模型(能力/范围访问) ([Medium](https://medium.com/%40sevenall/tauri-2-0-released-can-it-beat-electron-this-time-c748663d90ea?utm_source=chatgpt.com "Tauri 2.0 released: Can it beat Electron this time? by Sevenall Bin"))
核心插件权限标识 核心插件可能无统一前缀或使用旧标识 在 2.x 中,核心插件标识必须以 core: 前缀 或使用 core:default 权限集 (Tauri) "path:default""core:path:default" 或仅 "core:default"

构建/发行/移动平台 支持

模块 1.x(旧)行为 2.x(新)/变更 说明 /迁移建议
平台支持 主要针对桌面:Windows、macOS、Linux 新增对 iOS/Android 移动平台支持 ([Medium](https://medium.com/%40sevenall/tauri-2-0-released-can-it-beat-electron-this-time-c748663d90ea?utm_source=chatgpt.com "Tauri 2.0 released: Can it beat Electron this time? by Sevenall Bin"))
构建字段 build > distDir, build > devPath 分别重命名为 frontendDist, devUrl (Tauri) 更新配置文件
多渠道发布 较少强调 2.x 强调 "多渠道发行"支持:桌面 + 移动 +发布商店 +包管理器等 ([Medium](https://medium.com/%40sevenall/tauri-2-0-released-can-it-beat-electron-this-time-c748663d90ea?utm_source=chatgpt.com "Tauri 2.0 released: Can it beat Electron this time? by Sevenall Bin"))
更新器构建产物 旧版本可能由打包流程隐式处理 在 2.x 中,bundle > createUpdaterArtifacts 配置新增或要求设置;如果从 v1 升级且已有分发产物,建议设置为 "v1Compatible" (Tauri) 在打包配置中加入该字段以兼容旧版本用户

📌 小结

  • 升级从 1.x → 2.x 并非"微小改动",在配置结构API 路径插件系统权限模型平台支持等多个维度都发生了重大变更。
  • 推荐先 使用 tauri migrate CLI 工具 自动迁移大部分内容(但不应依赖其完全正确,仍需人工校对) (Tauri)
  • 升级过程中建议按照模块(如上表)逐项检查:配置、Rust 端、前端 JS、插件、权限、安全、构建/打包。
  • 若你的项目暂时只针对桌面而且不打算近期上线移动平台,且你已稳定在 1.x 上,也可考虑暂缓升级。但若你启动新项目或想利用 2.x 的新特性(如移动支持、插件化、改进权限模型等),推荐直接从 2.x 开始。

相关推荐
fcm191 个月前
(4) Tauri调试
rust·tauri
飘逸者打瞌睡2 个月前
tauri打包失败
tauri
姜 萌@cnblogs3 个月前
【实战】让AI理解用户的文化背景:开源项目Saga Reader自动翻译的技术实现
ai·web·tauri
姜 萌@cnblogs3 个月前
Rust并发编程中的所有权挑战与解决方案:从实际项目看Clone策略的应用
ai·rust·tauri
musk12124 个月前
electron 打包太大 试试 tauri , tauri 安装打包demo
前端·electron·tauri
景川呀4 个月前
【ClipPal】推荐一个非常好用的粘贴板记录工具
tauri·粘贴板·粘贴板工具
姜 萌@cnblogs5 个月前
【实战】深入浅出 Rust 并发:RwLock 与 Mutex 在 Tauri 项目中的实践
前端·ai·rust·tauri
姜 萌@cnblogs5 个月前
开源我的一款自用AI阅读器,引流Web前端、Rust、Tauri、AI应用开发
rust·web·tauri·svelte