Tauri初步使用

Tauri

是一款替代Electron的產(chǎn)品。如果使用Electron的話就知道Electron打包體積很大,而Tauri打包體積很小。(當(dāng)然,Tauri的功能不僅是打包)

Tauri的安裝

前提條件

  1. 已經(jīng)安裝NodeJS
  2. 已經(jīng)安裝npm
    (NPM和NodeJS的安裝方法請(qǐng)見百度)

安裝

  1. 下載Visual Studio 2019/2022(2013以上的版本就可以)
    Visual Studio 2022下載地址:https://visualstudio.microsoft.com/zh-hans/vs/
  2. 下載完成后打開vs安裝器勾選下面圖片中的內(nèi)容


    組件安裝
  3. 等待安裝完畢
  4. 下載Rust
    Rust下載地址(注意系統(tǒng)位數(shù)):https://www.rust-lang.org/zh-CN/tools/install
  5. Rust下載完畢后雙擊exe安裝,全程直接默認(rèn)即可,等待安裝完畢。
  6. Win10及以下系統(tǒng)需要注意
    tauri需要WebView2才可以運(yùn)行而Win10及以下并不會(huì)自帶WebView2,因此需手動(dòng)安裝(如果你安裝了一些軟件可能會(huì)自動(dòng)安裝WebView2,那么這個(gè)時(shí)候安裝程序會(huì)提示已經(jīng)安裝WebView2,此時(shí)這一步就可以跳過了):
    WebView2安裝(選擇常青版引導(dǎo)程序即可):https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/
  7. 在cmd中執(zhí)行cargo install tauri-bundler,如果下載失敗,執(zhí)行cargo install tauri-bundler --force。(下載速度特慢,建議上網(wǎng)查找cargo的國內(nèi)鏡像源及配置方法)

至此,Tauri已經(jīng)安裝完畢。

Tauri和Vue結(jié)合

  1. 添加插件tauri-cli:
    (需要進(jìn)入到項(xiàng)目中使用這個(gè)命令)
    vue add tauri
    
    等待添加完成
  2. 添加完成后,會(huì)讓你一次輸入項(xiàng)目名,窗口名等信息,可以先一律默認(rèn)然后自己修改。等待tauri初始化完畢。重啟編譯器(如:Webstorm)
  3. 執(zhí)行npm install --save-dev @tauri-apps/cli
  4. 打開package.json,將scripts下面的"tauri:build": "vue-cli-service tauri:build"改成"tauri:build": "tauri build""tauri:serve": "vue-cli-service tauri:serve"改成"tauri:serve": "tauri dev"
  5. 打開項(xiàng)目路徑/src-tauri/tauri.conf.json文件,將
    "build": {
    "beforeBuildCommand": "",
    "beforeDevCommand": "",
    "devPath": "http://localhost:8080",
    "distDir": "../dist"
    }
    
    改成
    "build": {
    "beforeBuildCommand": "npm run build",
    "beforeDevCommand": "npm run serve",
    "devPath": "http://localhost:[項(xiàng)目的端口號(hào)]",
    "distDir": "../dist"
    }
    
    (不改會(huì)打包錯(cuò)誤)
    "identifier": "com.tauri.dev"改成"identifier": "com.tauri.build"(不改會(huì)打出空包)
  6. 此時(shí)Vue和Tauri整合完畢,可以使用Vue作為前端,Tauri進(jìn)行打包。

通過tauri:serve進(jìn)行運(yùn)行操作。
第一次打包速度會(huì)非常慢,但以后打包就很快了。
(如果運(yùn)行失敗可以執(zhí)行這個(gè)命令試試,若無法解決可以看下面的踩坑)

后續(xù)動(dòng)作

修改項(xiàng)目信息

項(xiàng)目信息配置文件就是前文提到的tauri.conf.json。這里面記載了項(xiàng)目的一些信息,打包時(shí)也會(huì)使用這個(gè)配置文件。因此,可以在這里對(duì)項(xiàng)目的打包做一些配置。

修改msi安裝包的語言

默認(rèn)打包出來的msi是英語的,如果要改成其他語言可以嘗試下列方法:

  1. tauri.conf.json中的tauri->bundle->windows下添加"wix":{"language": ["en-US","zh-CN"]}
  2. 重新打包,這樣就會(huì)生成2個(gè)安裝包,一個(gè)英語,一個(gè)簡(jiǎn)中。所支持的語言代碼見下面的鏈接:https://docs.microsoft.com/en-us/windows/win32/msi/localizing-the-error-and-actiontext-tables

踩坑

  1. tauri:serve無法運(yùn)行或者運(yùn)行一段時(shí)間后自動(dòng)結(jié)束并報(bào)錯(cuò),提示找不到命令'cargo'
    (1). 如果你已經(jīng)安裝了cargo且系統(tǒng)cmd當(dāng)中可以使用cargo而在使用編譯器運(yùn)行的時(shí)候就出現(xiàn)這個(gè)問題
    解決:重啟你的編譯器(比如Webstorm必須徹底關(guān)閉并重啟)
    (2). 如果你沒有安裝cargo ,請(qǐng)安裝cargo(安裝Rust時(shí)自動(dòng)安裝)
  2. 打包時(shí)出錯(cuò),在下載WixTool時(shí)報(bào)錯(cuò)。
    第一次打包的話會(huì)下載一個(gè)組件包,因?yàn)榫W(wǎng)絡(luò)問題可能無法下載導(dǎo)致打包失敗,可以自己手動(dòng)下載(速度很快)然后放到C:\User\你的用戶名\AppData\Local\tauri\WixTools目錄下,如果沒有tauri和WixTools文件夾就創(chuàng)建創(chuàng)建這兩個(gè)文件夾,(AppData文件夾需要開啟“顯示隱藏文件”才能看到)需要注意,文件夾的名稱是固定的,不能修改?。?!
    WixTools下載(復(fù)制到瀏覽器可以直接下載,或者將它復(fù)制然后粘貼到迅雷下載):https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip
  3. 【2022-8-4更新】使用js中的confirm函數(shù)彈出的對(duì)話框在tauri打包后無效(“彈出確認(rèn)框就跳轉(zhuǎn)頁面”、“彈出確認(rèn)框無論點(diǎn)什么都是按照‘確認(rèn)’處理”等問題都屬于這種情況)
    Tauri有一套自己對(duì)于confirm的實(shí)現(xiàn)邏輯(不知道是vue插件tauri-cli導(dǎo)致的還是tauri本身就有一套特殊的機(jī)制,本人猜測(cè)是vue插件tauri-cli的可能性更大),原先JS的confirm函數(shù)返回的是Bool而使用tauri打包后confirm返回的是一個(gè)對(duì)象,你需要實(shí)現(xiàn)then方法才可以讓confirm發(fā)揮應(yīng)有的作用。
    舉例:
    未使用tauri時(shí)的代碼:
    let b=confirm("確定刪除嗎?")
    if(b){
      ...//當(dāng)用戶點(diǎn)擊確認(rèn)后執(zhí)行的代碼
    }
    
    使用tauri后就需要這樣寫:
    let b=confirm("確定刪除嗎?")
    b.then((res)=>{
      if(res){
        //當(dāng)用戶點(diǎn)擊確認(rèn)后執(zhí)行的代碼
      }else{
        //當(dāng)用戶點(diǎn)擊取消后執(zhí)行的代碼
      }
    })
    
    目前不清楚其他框(alert等)的邏輯是否也變了。

評(píng)價(jià)

從這次經(jīng)歷看來,Tauri和Vue的集成并不是很好,而且和vue的整合有些繁瑣,不過做為新起之秀還是值得期待的,因?yàn)門auri打包的體積非常小,我有一個(gè)項(xiàng)目用Electron打包是120MB(安裝包),用tauri打包就變成7MB(安裝包)了,非常的nice。
但它有這么幾個(gè)缺點(diǎn):

  1. 打包時(shí)會(huì)占用大量的CPU(開一個(gè)Idea,運(yùn)行后臺(tái),再開一個(gè)Webstorm,然后webstorm開始打包,此時(shí)你的電腦卡的跟動(dòng)畫片一樣)
  2. 和Vue的集成十分繁瑣
  3. 生態(tài)不夠完善
  4. API文檔比較混亂(尤其是“配置文件結(jié)構(gòu)”那部分,特別混亂)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容