| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- #!/bin/bash
- # Tauri + Chromium 自动化打包脚本
- # 用于快速构建包含内置Chrome浏览器的exe文件
- set -e # 遇到错误立即退出
- echo "🚀 开始构建 Tauri + Chromium 应用..."
- # 检查环境
- echo "📋 检查环境..."
- command -v node >/dev/null 2>&1 || { echo "❌ 需要安装 Node.js"; exit 1; }
- command -v cargo >/dev/null 2>&1 || { echo "❌ 需要安装 Rust"; exit 1; }
- command -v npx >/dev/null 2>&1 || { echo "❌ 需要安装 npm/npx"; exit 1; }
- echo "✅ 环境检查通过"
- # 安装依赖
- echo "📦 安装项目依赖..."
- npm install
- # 准备Chromium浏览器
- echo "🌐 下载并配置 Chromium..."
- npm run prepare-browsers
- # 设置环境变量
- export PLAYWRIGHT_BROWSERS_PATH="$(pwd)/browsers"
- # 构建应用
- echo "🔨 构建应用..."
- if [[ "$OSTYPE" == "linux-gnu"* ]]; then
- echo "🐧 构建 Linux AppImage..."
- npm run tauri:build:linux
- elif [[ "$OSTYPE" == "darwin"* ]]; then
- echo "🍎 构建 macOS .app (Apple Silicon)..."
- npm run tauri:build:macos
- elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
- echo "🪟 构建 Windows exe..."
- npm run tauri:build:windows
- else
- echo "❌ 不支持的操作系统: $OSTYPE"
- exit 1
- fi
- echo "✅ 构建完成!"
- # 显示输出位置
- if [[ "$OSTYPE" == "linux-gnu"* ]]; then
- OUTPUT_DIR="src-tauri/target/release/bundle/appimage/"
- OUTPUT_FILE="*.AppImage"
- elif [[ "$OSTYPE" == "darwin"* ]]; then
- OUTPUT_DIR="src-tauri/target/release/bundle/dmg/"
- OUTPUT_FILE="*.dmg"
- elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
- OUTPUT_DIR="src-tauri/target/release/bundle/msi/"
- OUTPUT_FILE="*.msi"
- fi
- echo ""
- echo "📁 输出位置: $OUTPUT_DIR"
- echo "📦 生成文件: $OUTPUT_FILE"
- echo ""
- echo "🎉 打包成功!应用已包含内置Chromium浏览器,可以独立运行。"
- # 可选:显示文件大小
- if [[ -d "$OUTPUT_DIR" ]]; then
- echo ""
- echo "📊 文件信息:"
- ls -lh "$OUTPUT_DIR" | grep -E "\.(exe|app|AppImage|msi|dmg)$"
- fi
|