Tauri完全指南:从安装到高级应用(Apple Silicon M2环境)

云信安装大师
90
AI 质量分
10 5 月, 2025
3 分钟阅读
0 阅读

Tauri完全指南:从安装到高级应用(Apple Silicon M2环境)

引言

Tauri是一个现代化的跨平台应用开发框架,它允许开发者使用Web技术(HTML/CSS/JavaScript)构建轻量级的原生应用程序。与Electron相比,Tauri应用体积更小、性能更高。本文将带你在Apple Silicon M2芯片的Mac上完成Tauri的完整开发环境搭建,并创建一个示例应用。

准备工作

系统要求

  • Mac电脑搭载Apple Silicon M2芯片
  • macOS Monterey (12.0) 或更高版本
  • 已安装Xcode命令行工具
  • Node.js (推荐16.x或更高版本)
  • Rust编程语言环境

前置知识

  • 基本的HTML/CSS/JavaScript知识
  • 简单的命令行操作经验
  • 对Rust有基本了解会更好(但不是必须)

第一步:安装必要工具

1.1 安装Xcode命令行工具

打开终端并运行:

代码片段
xcode-select --install

注意事项
– 这会安装Git等基本开发工具
– 如果已经安装过,会提示”already installed”

1.2 安装Homebrew

Homebrew是macOS上的包管理器,运行以下命令安装:

代码片段
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,将Homebrew添加到PATH:

代码片段
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc

M2芯片特别说明
– Apple Silicon芯片的Mac上Homebrew安装在/opt/homebrew目录下

1.3 安装Node.js和npm

使用Homebrew安装Node.js:

代码片段
brew install node

验证安装:

代码片段
node -v
npm -v

推荐版本
– Node.js v16.x或更高版本

第二步:安装Rust环境

Tauri的核心是用Rust编写的,因此需要Rust工具链。

2.1 安装Rustup

运行以下命令:

代码片段
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

按照提示完成安装后,运行:

代码片段
source $HOME/.cargo/env

验证安装:

代码片段
rustc --version

2.2 配置Rust目标平台

对于Apple Silicon M2芯片,需要添加目标平台支持:

代码片段
rustup target add aarch64-apple-darwin

第三步:创建Tauri项目

3.1 使用create-tauri-app脚手架

这是最简单的入门方式:

代码片段
npm create tauri-app@latest my-tauri-app -- --template vanilla-js-vite 
cd my-tauri-app

参数说明
my-tauri-app:项目名称(可自定义)
--template vanilla-js-vite:使用Vite+纯JavaScript模板

3.2 项目结构说明

创建的项目包含以下主要文件:

代码片段
my-tauri-app/
├── src/
│   ├── main.js       # Web端入口文件
│   └── style.css     # Web样式表  
├── src-tauri/
│   ├── Cargo.toml    # Rust项目配置文件  
│   └── tauri.conf.json # Tauri配置文件  
├── index.html        # HTML主文件  
└── vite.config.js    # Vite配置  

第四步:运行开发服务器

4.1 启动开发模式

在项目根目录运行:

代码片段
npm run tauri dev 

这个命令会同时启动两个进程:
1. Vite开发服务器(前端热重载)
2. Tauri桌面应用窗口(后端)

常见问题解决:如果遇到权限问题,尝试运行:

代码片段
sudo xattr -r -d com.apple.quarantine /Applications/Xcode.app 

第五步:构建生产版本应用

当开发完成后,可以构建发布版本:

代码片段
npm run tauri build 

构建完成后,可以在src-tauri/target/release/bundle/macos/目录下找到.app文件。

注意事项
– macOS默认会阻止未签名的应用运行,首次运行时需要在”系统偏好设置 > 安全性与隐私”中允许打开该应用。

Tauri高级功能实践

A. Rust与前端通信示例

src-tauri/src/main.rs中添加:

代码片段
#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}! From Rust", name)
}

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

在前端调用:

代码片段
// src/main.js 
import { invoke } from '@tauri-apps/api'

async function sayHello() {
    const greeting = await invoke('greet', { name: 'World' })
    console.log(greeting) // "Hello, World! From Rust"
}
sayHello()

B. Tauri插件使用示例(文件系统API)

首先在src-tauri/Cargo.toml中添加依赖:

代码片段
[dependencies]
tauri-plugin-fs = "0.1"

然后在主程序中注册插件:

代码片段
use tauri_plugin_fs::FsPlugin;

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

前端使用:

代码片段
import { readTextFile } from '@tauri-apps/api/fs'

async function readFile() {
    const contents = await readTextFile('/path/to/file.txt')
    console.log(contents)
}
readFile()

Apple Silicon优化技巧

  1. 编译优化:在Cargo.toml中添加以下配置提高性能:
代码片段
[profile.release]
opt-level = "z"     # Optimize for size and speed  
lto = true          # Link Time Optimization  
codegen-units = 1   # Better optimization at cost of compile time  
panic = "abort"     # Reduce binary size by aborting on panic  
strip = true        # Remove debug symbols from release build  
  1. 原生架构构建:确保构建时使用aarch64架构:
代码片段
export RUSTFLAGS="-C target-cpu=native"
npm run tauri build 
  1. 减少内存占用:Tauriapp的内存占用通常比Electron低很多,但可以通过禁用不需要的功能进一步优化:

tauri.conf.json中:

代码片段
{
    "build": {
        "withGlobalTauri": false, // Disable global Taurivariables to reduce bundle size  
        "bundle": {
            "resources": []       // Only include necessary resources  
        }
    }
}

Troubleshooting常见问题

Q1: Rust编译错误

错误示例:”linker ‘cc’ not found”

解决方案:

代码片段
xcode-select --install 
rustup update stable 
rustup target add aarch64-apple-darwin  
cargo clean && cargo build --release   

Q2: npm install失败

尝试:

代码片段
rm -rf node_modules package-lock.json   
npm cache clean --force   
npm install   

Q3: App无法启动

检查:

代码片段
console.log(process.env) // Ensure TAURI_PLATFORM is set correctly for M2   

或者手动设置:

代码片段
export TAURI_PLATFORM="aarch64-apple-darwin"   

Conclusion总结

在本指南中,我们完成了:

✅ Apple Silicon M2上的完整Tauridevelopment环境搭建

✅从零开始创建并运行一个Tauriapplication

✅实现了Rust与前端JavaScript的互操作

✅探索了针对M1/M2芯片的性能优化技巧

Tauriapplication相比Electron具有显著优势:

✔️更小的二进制体积(~5MB vs ~100MB)

✔️更低的内存占用和CPU使用率

✔️原生集成系统API的能力

✔️更好的Apple Silicon支持

现在你可以开始基于此模板开发自己的跨平台桌面应用了!

原创 高质量