Mise à Niveau Depuis Tauri 1.0
Ce guide vous explique comment mettre à niveau votre application basée sur Tauri 1.0 vers Tauri 2.0.
Migration Automatisée
Tauri v2 contient la commande migrate
qui simplifie votre migration:
Apprenez-en plus à-propos de la commande migrate
dans l’interface de référence des commandes
Sommaire des Changements
Voici ci-dessous un sommaire des changement entre Tauri 1.0 et Tauri 2.0:
Configuration Tauri
tauri > allowlist
retiré.tauri > allowlist > protocol > assetScope
déplacé verstauri > security > assetProtocol > scope
.tauri > cli
déplacé versplugins > cli
.tauri > updater
déplacé verstauri > bundle > updater
.tauri > updater > dialog
retiré.tauri > updater > endpoints
déplacé versplugins > updater
.tauri > systemTray
renomé entauri > trayIcon
.
Référence de l’API de configuration de Tauri 2.0
Nouvelles Fonctionnalités de Cargo
- linux-protocol-body: Permet les protocols de requêtes “body parsing”, autorisant l’IPC à l’utiliser. Nécéssite webkit2gtk 2.40.
Fonctionnalités Cargo Retirées
- reqwest-client: reqwest est maintenant le seul client supporté.
- reqwest-native-tls-vendored: utilisez
native-tls-vendored
à la place. - process-command-api: utilisez le plugin
shell
à la place (voir les instructions dans la section suivante). - shell-open-api: utilisez le plugin
shell
à la place (voir les instructions dans la section suivante). - windows7-compat: déplacé vers le plugin
notification
. - updater: Updater est maintenant un plugin.
- linux-protocol-headers: est maintenant activé par défaut car la version minimal de webkit2gtk a été augmentée.
- system-tray: renomé en
tray-icon
.
Changement de Crate Rust
api
module enlevé. Chaque module d’API peut être trouvé dans un plugin Tauri.api::dialog
module enlevé. Utiliseztauri-plugin-dialog
à la place. Migrationapi::file
module enlevé. Utilisez Rust’sstd::fs
à la place.api::http
module enlevé. Utiliseztauri-plugin-http
à la place. Migrationapi::ip
module réécrit et déplacé verstauri::ipc
. Jetez un œil aux nouvelles APIs, particulièrementtauri::ipc::Channel
.- fonctions du module
api::path
ettauri::PathResolved
déplacées verstauri::Manager::path
. Migration api::process::Command
,tauri::api::shell
ettauri::Manager::shell_scope
APIs enlevées. Utiliseztauri-plugin-shell
à la place. Migrationapi::process::current_binary
ettauri::api::process::restart
déplacés verstauri::process
.api::version
module a été retiré. Utilisez la crate semver à la place.App::clipboard_manager
etAppHandle::clipboard_manager
enlevés. Utiliseztauri-plugin-clipboard
à la place. MigrationApp::get_cli_matches
enlevé. Utiliseztauri-plugin-cli
à la place. MigrationApp::global_shortcut_manager
etAppHandle::global_shortcut_manager
enlevés. Utiliseztauri-plugin-global-shortcut
à la place. MigrationManager::fs_scope
enlevé. Le “scope” du fichier système est accessible viatauri_plugin_fs::FsExt
.Plugin::PluginApi
reçoit maintenant une configuration de plugin en tant que deuxième argument.Plugin::setup_with_config
enlevé. Utiliseztauri::Plugin::PluginApi
mis à jour à la place.scope::ipc::RemoteDomainAccessScope::enable_tauri_api
etscope::ipc::RemoteDomainAccessScope::enables_tauri_api
enlevés. Activer chaque plugin “core” individuellement viascope::ipc::RemoteDomainAccessScope::add_plugin
à la place.updater
module enlevé. Utiliseztauri-plugin-updater
à la place. MigrationMenu
,MenuEvent
,CustomMenuItem
,Submenu
,WindowMenuEvent
,MenuItem
etBuilder::on_menu_event
APIs enlevés. MigrationSystemTray
,SystemTrayHandle
,SystemTrayMenu
,SystemTrayMenuItemHandle
,SystemTraySubmenu
,MenuEntry
etSystemTrayMenuItem
APIs enlevées. Migration
Changements de l’API JavaScript
Le package @tauri-apps/api
ne fournis plus de modules “non-core”. Seul les modules tauri
, path
et event
sont exportés. Tous les autres ont été déplacés vers des plugins.
@tauri-apps/api/app
module enlevé. Utilisez@tauri-apps/plugin-app
à la place. Migration@tauri-apps/api/cli
module enlevé. Utilisez@tauri-apps/plugin-cli
à la place. Migration@tauri-apps/api/clipboard
module enlevé. Utilisez@tauri-apps/plugin-clipboard
à la place. Migration@tauri-apps/api/dialog
module enlevé. Utilisez@tauri-apps/plugin-dialog
à la place. Migration@tauri-apps/api/fs
module enlevé. Utilisez@tauri-apps/plugin-fs
à la place. Migration@tauri-apps/api/global-shortcut
module enlevé. Utilisez@tauri-apps/plugin-global-shortcut
à la place. Migration@tauri-apps/api/http
module enlevé. Utilisez@tauri-apps/plugin-http
à la place. Migration@tauri-apps/api/os
module enlevé. Utilisez@tauri-apps/plugin-os
à la place. Migration@tauri-apps/api/notification
module enlevé. Utilisez@tauri-apps/plugin-notification
à la place. Migration@tauri-apps/api/process
module enlevé. Utilisez@tauri-apps/plugin-process
à la place. Migration@tauri-apps/api/shell
module enlevé. Utilisez@tauri-apps/plugin-shell
à la place. Migration@tauri-apps/api/updater
module enlevé. Utilisez@tauri-apps/plugin-updater
à la place Migration@tauri-apps/api/window
module enlevé. Utilisez@tauri-apps/plugin-window
à la place Migration
Etapes de Migration Détaillées
Les scénarios communs que vous pouvez rencontrer lors de votre migration de Tauri 1.0 vers Tauri 2.0.
Migrer votre “App Plugin”
Les APIs JavaScript @tauri-apps/api/app
ont été enlevées. Utilisez le plugin @tauri-apps/plugin-app
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “CLI Plugin”
Les APIs Rust App::get_cli_matches
et JavaScript @tauri-apps/api/cli
APIs ont été retirées. Utilisez le plugin @tauri-apps/plugin-cli
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “Clipboard Plugin”
Les APIs Rust App::clipboard_manager
et AppHandle::clipboard_manager
ainsi que l’API JavaScript @tauri-apps/api/clipboard
ont été retirées. Utilisez le plugin @tauri-apps/plugin-clipboard-manager
à la place:
Migrer vers un “Dialog Plugin”
les APIs Rust tauri::api::dialog
et JavaScript @tauri-apps/api/dialog
ont été retirées. Utilisez le plugin @tauri-apps/plugin-dialog
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “File System Plugin”
Les APIs Rust App::get_cli_matches
et JavaScript @tauri-apps/api/fs
ont été retirées. Utilisez le plugin std::fs
for Rust et @tauri-apps/plugin-fs
for JavaScript à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Utilisez les fonctions Rust std::fs
.
Migrer vers un “Global Shortcut Plugin”
Les APIs Rust App::global_shortcut_manager
et AppHandle::global_shortcut_manager
ainsi que l’API JavaScript @tauri-apps/api/global-shortcut
ont été retirées. Utilisez le plugin @tauri-apps/plugin-global-shortcut
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un plugin HTTP
Les APIs Rust tauri::api::http
et JavaScript @tauri-apps/api/http
ont été retirées. Utilisez le plugin @tauri-apps/plugin-http
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Le plugin HTTP “re-exports” (expose) reqwest pour que vous puissiez avoir accès à la documentation pour plus d’informations.
Migrer vers un “Notification Plugin”
Les APIs Rust tauri::api::notification
et JavaScript @tauri-apps/api/notification
ont été retirées. Utilisez le plugin @tauri-apps/plugin-notification
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “Menu Module”
Les APIs Rust Menu
ont été déplacées vers le module tauri::menu
et remaniée pour utiliser la crate muda.
L’API JavaScript @tauri-apps/api/window
onMenuClicked()
va être migrée dans une prochaine version.
Utilisez tauri::menu::MenuBuilder
Utilisez tauri::menu::MenuBuilder
à la place de tauri::Menu
. Notez que son constructeur prend en argument une instance de “Manager” (parmis App
, AppHandle
ou Window
):
Utilisez tauri::menu::PredefinedMenuItem
Utilisez tauri::menu::PredefinedMenuItem
à la place de tauri::MenuItem
:
Utilisez tauri::menu::MenuItemBuilder
Utilisez tauri::menu::MenuItemBuilder
à la place de tauri::CustomMenuItem
:
Utilisez tauri::menu::SubmenuBuilder
Utilisez tauri::menu::SubmenuBuilder
à la place de tauri::Submenu
:
tauri::Builder::menu
prend maintenant une “closure” car le menu a besoin d’une instance de “Manager” pour être construit. Voir la documentation pour plus d’information.
Evenement du Menu
L’API Rust tauri::Builder::on_menu_event
a été retirée. Utilisez tauri::App::on_menu_event
ou tauri::AppHandle::on_menu_event
à la place:
Notez qu’il y a deux manières de vérifier qu’un “item” de menu est sélectionné: on peut “move” (la fonctionnalités rust des closure) l‘“item” vers un gestionnaire d’événement (event handler) sous forme de closure et comparer les IDs, ou définir une ID personnalisée via le constructeur with_id
et utiliser cette ID (chaine de caractère) pour la comparer.
Migrer vers un “OS Plugin”
Les APIs Rust tauri::api::os
et JavaScript @tauri-apps/api/os
ont été retirées. Utilisez le plugin @tauri-apps/plugin-os
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “Process Plugin”
Les APIs Rust tauri::api::process
et JavaScript @tauri-apps/api/process
ont été retirées. Utilisez le plugin @tauri-apps/plugin-process
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer vers un “Shell Plugin”
Les APIs Rust tauri::api::shell
et JavaScript @tauri-apps/api/shell
ont été retirées. Utilisez le plugin @tauri-apps/plugin-shell
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
- Ouvrez un URL
- Créez un processus subordonné et récupérez le code de status
- Créez un processus subordonné et capturez sa sortie
- Créez un processus subordonné et lisez ses évenements read its events de manière asynchrone:
Migrer vers un “Tray Icon Module”
Les APIs Rust SystemTray
ont été renommés en TrayIcon
par soucis de cohérence. Les nouvelles APIs peuvent être trouvées dans le module Rust tray
.
Utilisez tauri::tray::TrayIconBuilder
Utilisez tauri::tray::TrayIconBuilder
à la place de tauri::SystemTray
:
Voir TrayIconBuilder pour plus d’informations.
Migrer vers un Menu
Utilisez tauri::menu::Menu
à la place de tauri::SystemTrayMenu
, tauri::menu::Submenu
à la place de tauri::SystemTraySubmenu
et tauri::menu::PredefinedMenuItem
à la place de tauri::SystemTrayMenuItem
. Migration
Les évenements de “Tray”
tauri::SystemTray::on_event
a été séparé dans tauri::tray::TrayIconBuilder::on_menu_event
et tauri::tray::TrayIconBuilder::on_tray_event
:
Migrer vers un “Updater Plugin”
Les APIs Rust tauri::updater
et JavaScript @tauri-apps/api-updater
ont été retirées. Pour définir une cible à mise à jour personnalisée, utilisez @tauri-apps/plugin-updater
:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Pour chercher des mises à jour:
Pour définir une cible à mettre à jour personnalisée:
Migrer vers un “Window Plugin”
Les API Rust tauri::window
et JavaScript @tauri-apps/api/window
ont été retirées. Utilisez le plugin @tauri-apps/plugin-window
à la place:
- Ajoutez vos dépendances Cargo:
- Utilisez-les dans un projet JavaScript ou Rust:
Migrer de “Path” vers “Tauri Manager”
Les fonctions du module Rust tauri::api::path
et tauri::PathResolver
ont été déplacées vers tauri::Manager::path
:
© 2024 Tauri Contributors. CC-BY / MIT