Tauri 創(chuàng)建 Rust 項(xiàng)目

2023-10-07 16:16 更新

每款 Tauri 應(yīng)用的核心都是由一個(gè)管理窗口的 Rust 二進(jìn)制文件、WebView 和進(jìn)行系統(tǒng)調(diào)用的 tauri Rust 包構(gòu)成。 此項(xiàng)目使用官方的軟件包管理器及 Rust 通用構(gòu)建工具 Cargo 來管理。

我們的 Tauri CLI 工具會在底層自動調(diào)用 Cargo,所以您大部分情況下無需和其交互。 Cargo 有諸多我們的 CLI 工具所未提供的有用功能,包括測試、分析及格式化工具。請參閱其官方文檔來了解更多。

安裝 TAURI CLI
如果你還沒有安裝Tauri CLI,你可以使用下面的一個(gè)命令進(jìn)行安裝。 不確定該用哪個(gè)? 請參閱常見問題。
  • npm
npm install --save-dev @tauri-apps/cli

為了使npm正確檢測到Tauri,您需要將它添加到您的package.json文件中的"scripts"部分:

package.json

"scripts": {
"tauri": "tauri"
}
  • Yarn
yarn add -D @tauri-apps/cli
  • pnpm
pnpm add -D @tauri-apps/cli
  • Cargo
cargo install tauri-cli

要搭建一個(gè)使用 Tauri 的簡單 Rust 項(xiàng)目,請打開終端并運(yùn)行如下命令:

  • npm
npm run tauri init
  • Yarn
yarn tauri init
  • pnpm
pnpm tauri init
  • Cargo
cargo tauri init

它會向您詢問幾個(gè)問題:

  1. 您應(yīng)用的名字是什么?- 這將會是您打包后和操作系統(tǒng)會調(diào)用的應(yīng)用名稱。 您可以在此處填寫任何您想要的名稱。
  2. 窗口標(biāo)題叫什么?- 這將會是您主窗口的默認(rèn)標(biāo)題。 您可以在此處填寫任何您想要的名稱。
  3. 前端頁面資源 (HTML/CSS/JS) 相對于 ?<current dir>/src-tauri/tauri.conf.json? 文件將被創(chuàng)建的位置?- 這是 production 環(huán)境時(shí)tauri加載web前端資源的目錄.Use ?../build? for this value.
  4. 開發(fā)環(huán)境時(shí)的加載路徑?- 可以是一個(gè)網(wǎng)絡(luò)地址也可以是一個(gè)文件路徑 development.Use ?http://localhost:5173? for this value.
  5. 你將使用什么命令來開發(fā)前端頁面?- 這是啟動前端開發(fā)服務(wù)器的命令。- 使用 npm run dev(請確保根據(jù)您選擇的包管理器進(jìn)行適應(yīng))。
  6. 你將使用什么命令來構(gòu)建前端頁面?- 這是構(gòu)建前端文件的命令。
信息
若您已熟悉 Rust,您會發(fā)現(xiàn) tauri init 看起來很像 cargo init 命令。 若您想自己設(shè)置,您完全可以使用 cargo init 替代此命令,并手動添加 Tauri 依賴。

tauri init 命令將生成 src-tauri 文件夾。 傳統(tǒng)上,Tauri 應(yīng)用會將其核心相關(guān)的文件放置于此文件夾中。 讓我們快速過一下此文件夾中的內(nèi)容:

  • ?Cargo.toml

Cargo的清單文件。 您可以聲明您應(yīng)用所依賴的 Rust 包和應(yīng)用的元數(shù)據(jù)等等。 要查看所有可修改的值,請參閱 Cargo 清單格式。

  • ?tauri.conf.json?

此文件可讓您自定義 Tauri 應(yīng)用的各方各面,包括應(yīng)用名稱到允許的 API 列表。 請參閱 Tauri 的 API 配置來深入了解每個(gè)支持的選項(xiàng)。

  • ?src/main.rs?

這是你的 Rust 程序的入口,也是我們啟動 Tauri 的地方。 您可以發(fā)現(xiàn)它由兩個(gè)部分組成:

src/main.rs

 #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

fn main() {
tauri::Builder::default()
   .run(tauri::generate_context!())
   .expect("error while running tauri application");
}

The line beginning with the ?cfg! 宏?所開始的一行僅有一個(gè)目的:關(guān)閉構(gòu)建好的應(yīng)用在 Windows 上運(yùn)行時(shí)一般會出現(xiàn)的控制臺窗口。 若您是 Windows 用戶,您可以試試去掉這行看看會發(fā)生什么。

?main? 函數(shù)是您程序的入口點(diǎn),也是運(yùn)行時(shí)調(diào)用的第一個(gè)函數(shù)。

  • ?圖標(biāo)?

您可能想為自己的應(yīng)用整一個(gè)漂亮的圖標(biāo)! 為了幫助您快速開發(fā),我們?yōu)槟峁┝艘惶啄J(rèn)圖標(biāo)。 您應(yīng)該在發(fā)布前把這些圖標(biāo)換成您自己的圖標(biāo)。 您可以在 Tauri 的圖標(biāo)功能指南中了解有關(guān)多種圖標(biāo)格式的信息。

現(xiàn)在我們已經(jīng)搭建好了前端并初始化了Rust項(xiàng)目,創(chuàng)建的 tauri.conf.json 文件應(yīng)該如下所示:

src-tauri/tauri.conf.json

{
"build": {
// 當(dāng)你運(yùn)行 `tauri build` 時(shí),將會執(zhí)行這個(gè)命令。
"beforeBuildCommand": "npm run build",
// This command will execute when you run `tauri dev`
"beforeDevCommand": "npm run dev",
"devPath": "http://localhost:5173",
"distDir": "../build"
},

就是這樣! 現(xiàn)在您可以在您的終端中運(yùn)行接下來的命令來開始您的應(yīng)用程序的開發(fā)構(gòu)建:

  • npm
npm run tauri dev
  • Yarn
yarn tauri dev
  • pnpm
pnpm tauri dev
  • Cargo
cargo tauri dev



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號