✅ Windows: 生成 .exe + 内置Chromium
✅ macOS: 生成 .app + 内置Chromium
✅ Linux: 生成 .AppImage/.deb + 内置Chromium
# 1. 安装Tauri CLI
npm install -g @tauri-apps/cli
# 2. 安装Playwright browsers
npm run prepare-browsers
# 3. 验证安装
npx tauri info
# 启动开发服务器
npm run tauri:dev
# 构建时自动下载Chromium
npm run tauri:build
# 1. 安装Playwright browsers到项目目录
npx playwright install chromium
# 2. 设置环境变量
export PLAYWRIGHT_BROWSERS_PATH=./browsers
# 3. 构建
npm run tauri:build
# 构建Windows exe
npm run tauri:build:windows
# 输出位置: src-tauri/target/release/bundle/msi/
# 文件: your-app-name_0.1.0_x64.msi
# 构建macOS app
npm run tauri:build:macos
# 输出位置: src-tauri/target/release/bundle/dmg/
# 文件: your-app-name_0.1.0_x64.dmg
# 构建Linux AppImage
npm run tauri:build:linux
# 输出位置: src-tauri/target/release/bundle/appimage/
# 文件: your-app-name_0.1.0_amd64.AppImage
# 在CI/CD中构建所有平台
npm run tauri:build:all
cd /Users/wuzilong/work/00code/Buff/client-tauri
chmod +x build-exe.sh
./build-exe.sh
# 1. 安装依赖
npm install
# 2. 下载 Chromium
npm run prepare-browsers
# 3. 构建应用
npm run tauri:build:macos # macOS
npm run tauri:build:windows # Windows
npm run tauri:build:linux # Linux
your-app-name_0.1.0_x64.msi
├── your-app-name.exe # 主程序
├── browsers/ # 内置Chromium
│ └── chromium-*/...
├── resources/ # 应用资源
└── [其他系统文件]
your-app-name_0.1.0_x64.dmg
└── your-app-name.app/
├── Contents/
│ ├── MacOS/your-app-name # 主程序
│ ├── Frameworks/ # 系统框架
│ └── Resources/ # 应用资源
└── browsers/ # 内置Chromium
└── chromium-*/...
your-app-name_0.1.0_amd64.AppImage
├── your-app-name # 主程序
├── browsers/ # 内置Chromium
│ └── chromium-*/...
└── [squashfs文件系统]
// 在build.rs中指定版本
fn main() {
println!("cargo:rustc-env=PLAYWRIGHT_CHROMIUM_VERSION=chromium@1076");
}
# Cargo.toml - 优化构建
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true
// tauri.conf.json
{
"bundle": {
"windows": {
"wix": {
"installPath": "C:\\Program Files\\YourApp"
}
}
}
}
use tauri::api::version;
use tauri::Manager;
// 检查更新
let current_version = env!("CARGO_PKG_VERSION");
let latest_version = check_latest_version().await?;
if version::is_greater(&latest_version, current_version) {
// 触发更新流程
trigger_update(latest_version);
}
# 在不同Windows版本上测试
# Windows 10, 11
# macOS 10.15, 11, 12
# Ubuntu 18.04, 20.04, 22.04
| 组件 | 大小 | 说明 |
|---|---|---|
| Rust二进制 | ~5MB | 编译优化后的原生代码 |
| Chromium浏览器 | ~150MB | Playwright bundled版本 |
| Vue前端资源 | ~2MB | JS/CSS/HTML打包后 |
| 系统依赖 | ~10MB | Tauri运行时和系统库 |
| 总计 | ~167MB | 完整的独立可执行文件 |
# 检查Chromium路径
ls -la browsers/
# 手动重新安装
npx playwright install chromium --force
# 验证可执行文件
./browsers/chromium-*/chrome --version
# 清理缓存
rm -rf src-tauri/target/
rm -rf node_modules/.cache/
# 重新安装依赖
npm install
npm run prepare-browsers
# 详细构建日志
npm run tauri:build -- --verbose
# 启用调试模式
export RUST_BACKTRACE=1
export PLAYWRIGHT_DEBUG=1
# 查看应用日志
tail -f ~/.cache/your-app/logs/
# GitHub Actions 示例
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Prepare browsers
run: npm run prepare-browsers
- name: Build
run: npm run tauri:build
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-release
path: src-tauri/target/release/bundle/
tsconfig.json - Vue 3 + TypeScript 项目必需vue-tsc 类型检查(有兼容性问题)aarch64-apple-darwin 适配 Apple Silicon| 平台 | 命令 | 输出格式 |
|---|---|---|
| Windows | npm run tauri:build:windows |
.msi |
| macOS | npm run tauri:build:macos |
.dmg + .app |
| Linux | npm run tauri:build:linux |
.AppImage |
🎉 打包成功! 现在你可以分发这个 DMG 文件,用户只需要双击安装即可运行你的应用!
通过这个打包方案,你的应用将包含完整的Chromium浏览器,无需用户额外安装任何依赖即可运行Steam自动化功能。