tauri

tauri

当前rust生态不是很合适生产环境开发,一些包在windows上无法使用,但tauri的优势相当明显,打包后的映像极其小

桌面级web程序依然electron

使用vite构建tauri项目

目前的问题

rust windows上无法使用sqlite数据库,rusqlite有问题

入门

npm create vite@latest

编写本次教程时的依赖版本

  • nodejs=16.18.1

  • tauri-apps/cli=1.2.1

  • vitejs/plugin-vue=3.2.0

  • vite=3.2.3

修改vite.config.ts

不要直接复制粘贴,可能会覆盖其他配置

import { defineConfig } from 'vite'

export default defineConfig({
  // 防止 vite 输出复杂的 rust 错误
  clearScreen: false,
  // Tauri 使用固定端口,若此端口不可用将会导致程序错误
  server: {
    strictPort: true,
  },
  // 使用 `TAURI_PLATFORM`、`TAURI_ARCH`、`TAURI_FAMILY`,
  // `TAURI_PLATFORM_VERSION`、`TAURI_PLATFORM_TYPE` 和 `TAURI_DEBUG` 环境变量
  envPrefix: ['VITE_', 'TAURI_'],
  build: {
    // Tauri 支持 es2021
    target: ['es2021', 'chrome100', 'safari13'],
    // 不为调试构建压缩构建体积
    minify: !process.env.TAURI_DEBUG ? 'esbuild' : false,
    // 为调试构建生成源代码映射 (sourcemap)
    sourcemap: !!process.env.TAURI_DEBUG,
  },
})

安装cargo-cli

npm install --save-dev @tauri-apps/cli

在package.json中添加

"scripts": {
   //.....
  "tauri": "tauri"
   // .....
}

初始化

npm run tauri init

构建

npm run tauri build

可能会报错

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

将出问题的json串修改

初次build很费时,目前未找到解决方法

非常漂亮

image-20221201182546983

调用指令

使用rust原生代码

npm install @tauri-apps/api

#[tauri::command]
fn greet(name: &str) -> String {
   format!("Hello, {}!", name)
}

fn main() {
  tauri::Builder::default()
    .invoke_handler(tauri::generate_handler![greet])//invok
    .run(tauri::generate_context!())
    .expect("error while running tauri application");
}

Last updated