Skip to content

Tauri

1、Tauri安装使用

🍎常用命令

JS
// 项目打包为tauri

// 安装 Tauri CLI已经安装的忽略
npm install -g @tauri-apps/cli 

// 初始化tauri
npx tauri init

// 打包tauri -- 可直接运行
tauri build

// 打包tauri --安装运行一体包(windows版本)
tauri bundle

// 其他
// 运行tauri
tauri dev

// 查看tauri版本
tauri --version

使用tauri之前需要做好准备工作,配置好相关环境

javascript


WebView2 环境

win7: 需要先手动来装WebView2
win10:安装完会自动安装WebView2
win11:系统自带WebView2



安装rustup(Rust 安装程序)
rust版本一定要1.77.2以上的版本

👉官网

🍎tauri官网

javascript
https://v2.tauri.app/

🍎tauri中文官网

javascript
https://tauri.nodejs.cn/start/

2、搭建打包项目

👉 搭建运行项目

🍎这里我们采用yarn的方式进行构建
javascript
yarn create tauri-app

搭建过程中给我们的提示

javascript
yarn create v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...

success Installed "create-tauri-app@4.5.9" with binaries:
      - create-tauri-app
✔ Project name · nexustauri
✔ Identifier · com.nexustauri.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · yarn
✔ Choose your UI template · Vue - (https://vuejs.org/)
Choose your UI flavor · TypeScript

Template created! To get started run:
  cd nexustauri
  yarn
  yarn tauri android init

For Desktop development, run:
  yarn tauri dev

For Android development, run:
  yarn tauri android dev

Done in 56.07s.

这个时候我们有下面这个提示,这里我们选择桌面端,也就是搭建vue实现的桌面端Desktop

javascript
For Desktop development, run:
yarn tauri dev
🍎启动服务端项目
javascript
cd nexustauri
yarn
yarn tauri dev


//安卓的话使用这个
yarn tauri android dev
🍎这里直接启动
javascript
yarn dev

image.png

到这里我们的tauri项目就搭建成功了,可以开发第一个应用了

🍎打包
javascript
yarn build

这个时候打包的就是一个普通的网页部分可以看到的页面

👉桌面打包

🍎安装 Tauri脚手架
javascript
// 安装 Tauri CLI
npm install -g @tauri-apps/cli
🍎Tauri脚手架打包打包为桌面应用(.exe)
javascript
tauri build

打包完成以后打开我们的文件夹

javascript
打包成功
  
.exe文件存在 项目根目录\src-tauri\target\release

双击这个时候已经出现了下面的界面,代表我们已经打包桌面端成功了

image.png

接下来就可以正常进行开发了

👉vue3项目打包为tauri桌面端

🍎初始化项目

确保你有Rust环境

确保你有Tauri 脚手架全局或者局部安装

javascript
// 安装 Tauri CLI   已经安装的忽略
npm install -g @tauri-apps/cli

npx tauri init

🍎设置windows桌面应用信息

编辑这个文件tauri.conf.json,把它里面的信息设置成我们想要的,这里我们使用它默认给我们的这个

格外注意需要设置的部分

JS
"productName": "nexusvuepro", //应用名称
"version": "0.1.0", //版本号
"identifier": "com.tauri.dev", //应用标识符--唯一
"build": {
    "frontendDist": "../dist", //前端打包后的文件路径
    "beforeBuildCommand": "yarn build", //打包前执行的命令
    "beforeDevCommand": "yarn dev", //启动前执行的命令
    "devUrl": "http://localhost:5173", //开发环境启动的地址
},

完整文件

javascript
{
  "$schema": "https://schema.tauri.app/config/2",
  "productName": "nexusvuepro",
  "version": "0.1.0",
  "identifier": "com.tauri.dev",
  "build": {
    "frontendDist": "../dist",
    "devUrl": "http://localhost:8080",
    "beforeDevCommand": "npm run dev",
    "beforeBuildCommand": "npm run build"
  },
  "app": {
    "windows": [
      {
        "title": "nexus",
        "width": 800,
        "height": 600,
        "resizable": true,
        "fullscreen": false
      }
    ],
    "security": {
      "csp": null
    }
  },
  "bundle": {
    "active": true,
    "targets": "all",
    "icon": [
      "icons/32x32.png",
      "icons/128x128.png",
      "icons/128x128@2x.png",
      "icons/icon.icns",
      "icons/icon.ico"
    ]
  }
}
🍎打包过程认识

这里打成.exe文件其实是使用Cargo构建的Rust环境,打开src-tauri目录,使用 Rust 的 tauri-build 工具来打包应用程序

javascript
Tauri打包过程:

1)rust先去找src-tauri目录,打包这里面的东西其实是

2)找对应配置文件:
  tauri.conf.json 文件包含了 Tauri 应用程序的配置信息
  如应用程序名称、版本、图标、权限等

3)在刚刚的src-tauri目录使用cargo build命令编译Rust代码
    生成一个名为 tauri-driver 的可执行文件
    tauri-driver 可执行文件加载前端静态文件,并将它们嵌入到应用程序中
    根据配置文件中的信息,tauri-driver 会生成目标操作系统的可执行文件
    也就是在Windows 上是 .exe 文件(这里你知道为啥我们要改上面那个配置了吧)
🍎 打包错误

直接打包会提示我们这个错误

javascript
tauri build 

Error You must change the bundle identifier in `tauri.conf.json identifier`. 
The default value `com.tauri.dev` is not allowed 
as it must be unique across applications.

🍌原因

每个windows应用都有一个唯一标识,一般命名规则都是反向带着项目的名字,这里我们必须设置一个名字

🍌解决方法

打开 src-tauri/tauri.conf.json 文件,找到 bundle 部分并更改 identifier 的值

javascript
"bundle": {
  "identifier": "com.xxx.yourappname",
  // 其他配置...
}

//更改成自己的项目名字或者自己想要的名字即可
🍎重新打包
javascript
tauri build

打包完成以后文件在这个目录之中,我打包以后大概是在21M左右,不知道为啥没有官方宣传的3M大小那么神!(捂脸)

javascript
项目\src-tauri\target\release

image.png

接下来。愉快的开发tarui应用吧

3、配置优化

🍎打包vitepress博客

✨初始化以及配置

JS
// 安装 Tauri CLI   已经安装的忽略
npm install -g @tauri-apps/cli
npx tauri init

✨配置项目

JS
"productName": "nexusvuepro", //应用名称
"version": "0.1.0", //版本号
"identifier": "com.tauri.dev", //应用标识符--唯一
"build": {
    "frontendDist": "../dist", //前端打包后的文件路径
    "beforeBuildCommand": "yarn build", //打包前执行的命令
    "beforeDevCommand": "yarn dev", //启动前执行的命令
    "devUrl": "http://localhost:5173", //开发环境启动的地址
},

✨打包

JS
tauri build

✨运行exe文件,打包生成的目录在这个文档下面

JS
项目\src-tauri\target\release

🍎优化包

之前我们的包打出来以后是很多文件组成的,如何将所有文件整合为一个exe文件呢

✨命令

JS
tauri bundle 

// 生成的包的位置如下
\src-tauri\target\release\bundle\msi
JS
D:.
├─.fingerprint
│  ├─adler2-43826f74bcc0fed1
│  ├─aho-corasick-4ce77f29b8c62f7b
│  ├─aho-corasick-8535d060b5fb0865
│  ├─alloc-no-stdlib-3b9defc09250502c
    xxx
├─build
│  ├─anyhow-54e03999d9133c3a
│  ├─anyhow-67663f2085d3a7b3
│  │  └─out
│  ├─anyhow-ecc5d843216389e9
│  │  └─out
│  ├─app-997f791a7fa4648e
│  ├─app-9ffe3ef5b5dafa47
│  │  └─out
│  │      ├─app-manifest
│  │      └─tauri-codegen-assets
│  ├─camino-15fc9d0967f60d84
│  │  └─out
      xxx 
│  │  └─out
│  │      └─permissions
│  │          ├─app
│  │          │  └─autogenerated
              xxx
│  ├─tauri-plugin-log-a76538e78166203f
│  │  └─out
│  ├─tauri-plugin-log-b5df300448423088
│  ├─tauri-runtime-3298681dd7abd6f1
│  ├─tauri-runtime-d9e1f345369b5821
│  │  └─out
│  ├─tauri-runtime-wry-c0f40c4181370ca0
│  ├─tauri-runtime-wry-dbdec13b81cc0f36
    xxx
│  ├─typenum-e9a685e7d4f8200e
│  │  └─out
│  ├─webview2-com-sys-21b70c7cc7ac6945
│  │  └─out
│  │      ├─arm64
│  │      ├─x64
│  │      └─x86
│  ├─webview2-com-sys-a1519ecee3586c65
│  ├─windows_x86_64_gnu-30d6429a7e571f6d
│  ├─windows_x86_64_gnu-3a7450cdd810d95f
│  ├─windows_x86_64_gnu-6f5aed80385c4ef9
│  │  └─out
│  ├─windows_x86_64_gnu-b603be730fd871bf
│  │  └─out
│  ├─windows_x86_64_gnu-b8f1a874271a305e
│  │  └─out
│  ├─windows_x86_64_gnu-ff6a151188e5057b
│  │  └─out
│  ├─wry-d00ee14046386934
│  │  └─out
│  ├─wry-f8f56bed0ebfddf7
│  ├─zerocopy-471e7f91aa03f5f9
│  │  └─out
│  └─zerocopy-cf0b25f3e54ddd09
├─bundle
│  └─msi
├─deps
├─examples
├─incremental
├─resources
└─wix

✨配置tauri.conf.json文件 查看我们包的大小,目前我的包大小为103M大小,安装运行以后,已经可以在我们的桌面上看到我们的应用了NexusNote

JS
//现在我们的配置如下
"bundle": {
  "active": true,
  "targets": "all",
  "icon": [
    "icons/32x32.png",
    "icons/128x128.png",
    "icons/128x128@2x.png",
    "icons/icon.icns",
    "icons/icon.ico"
  ]
}

Released under the MIT License.