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 valuecom.tauri.dev
is not allowed as it must be unique across applications.将出问题的json串修改
初次build很费时,目前未找到解决方法
非常漂亮

调用指令
使用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