跳到内容
Tauri

从 Tauri 2.0 Beta 升级

本指南将引导您完成将 Tauri 2.0 beta 应用程序升级到 Tauri 2.0 候选版本的过程。

自动迁移

Tauri v2 CLI 包含一个 migrate 命令,该命令可以自动执行大部分过程并帮助您完成迁移

npm install @tauri-apps/cli@latest
npm run tauri migrate

了解有关 migrate 命令的更多信息,请参阅命令行界面参考

重大更改

从 beta 版到候选版本,我们进行了一些重大更改。这些更改可以自动迁移(见上文)或手动执行。

Tauri 核心插件

我们更改了 Tauri 内置插件在功能中的寻址方式 PR #10390

要从最新的 beta 版本迁移,您需要在功能中为所有核心权限标识符添加前缀 core: 或切换到 core:default 权限并删除旧的核心插件标识符。

...
"permissions": [
"path:default",
"event:default",
"window:default",
"app:default",
"image:default",
"resources:default",
"menu:default",
"tray:default",
]
...
...
"permissions": [
"core:path:default",
"core:event:default",
"core:window:default",
"core:app:default",
"core:image:default",
"core:resources:default",
"core:menu:default",
"core:tray:default",
]
...

我们还添加了一个新的特殊 core:default 权限集,其中将包含所有核心插件的所有默认权限,因此您可以简化功能配置中的权限样板。

...
"permissions": [
"core:default"
]
...

内置开发服务器

我们对内置开发服务器的网络暴露进行了更改 PR #10437PR #10456

内置移动开发服务器不再在整个网络中公开,而是将流量从本地计算机直接隧道传输到设备。

目前,当在 iOS 设备上运行时(直接或从 Xcode 启动),此改进不会自动应用。在这种情况下,我们默认使用公共网络地址作为开发服务器,但是有一种解决方法,它涉及打开 Xcode 以自动启动 macOS 机器和连接的 iOS 设备之间的连接,然后运行 tauri ios dev --force-ip-prompt 以选择 iOS 设备的 TUN 地址(以 ::2 结尾)。

如果计划在物理 iOS 设备上运行,则您的开发服务器配置需要适应此更改。 以前,我们建议检查 TAURI_ENV_PLATFORM 环境变量是否与 androidios 匹配,但是由于除非使用 iOS 设备,否则我们现在可以连接到 localhost,因此您应该改为检查 TAURI_DEV_HOST 环境变量。 这是一个 Vite 配置迁移的示例

  • 2.0.0-beta
import { defineConfig } from 'vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
import { internalIpV4Sync } from 'internal-ip';
const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);
export default defineConfig({
plugins: [svelte()],
clearScreen: false,
server: {
host: mobile ? '0.0.0.0' : false,
port: 1420,
strictPort: true,
hmr: mobile
? {
protocol: 'ws',
host: internalIpV4Sync(),
port: 1421,
}
: undefined,
},
});
  • 2.0.0:
import { defineConfig } from 'vite';
import Unocss from 'unocss/vite';
import { svelte } from '@sveltejs/vite-plugin-svelte';
const host = process.env.TAURI_DEV_HOST;
export default defineConfig({
plugins: [svelte()],
clearScreen: false,
server: {
host: host || false,
port: 1420,
strictPort: true,
hmr: host
? {
protocol: 'ws',
host: host,
port: 1430,
}
: undefined,
},
});

© 2025 Tauri 贡献者。CC-BY / MIT