build-exe.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. # Tauri + Chromium 自动化打包脚本
  3. # 用于快速构建包含内置Chrome浏览器的exe文件
  4. set -e # 遇到错误立即退出
  5. echo "🚀 开始构建 Tauri + Chromium 应用..."
  6. # 检查环境
  7. echo "📋 检查环境..."
  8. command -v node >/dev/null 2>&1 || { echo "❌ 需要安装 Node.js"; exit 1; }
  9. command -v cargo >/dev/null 2>&1 || { echo "❌ 需要安装 Rust"; exit 1; }
  10. command -v npx >/dev/null 2>&1 || { echo "❌ 需要安装 npm/npx"; exit 1; }
  11. echo "✅ 环境检查通过"
  12. # 安装依赖
  13. echo "📦 安装项目依赖..."
  14. npm install
  15. # Chromium bundling disabled — skip browser preparation
  16. echo "ℹ️ Chromium bundling disabled; skipping browser preparation."
  17. # 构建应用
  18. echo "🔨 构建应用..."
  19. if [[ "$OSTYPE" == "linux-gnu"* ]]; then
  20. echo "🐧 构建 Linux AppImage..."
  21. npm run tauri:build:linux
  22. elif [[ "$OSTYPE" == "darwin"* ]]; then
  23. echo "🍎 构建 macOS .app (Apple Silicon)..."
  24. npm run tauri:build:macos
  25. elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
  26. echo "🪟 构建 Windows exe..."
  27. npm run tauri:build:windows
  28. else
  29. echo "❌ 不支持的操作系统: $OSTYPE"
  30. exit 1
  31. fi
  32. echo "✅ 构建完成!"
  33. # 显示输出位置
  34. if [[ "$OSTYPE" == "linux-gnu"* ]]; then
  35. OUTPUT_DIR="src-tauri/target/release/bundle/appimage/"
  36. OUTPUT_FILE="*.AppImage"
  37. elif [[ "$OSTYPE" == "darwin"* ]]; then
  38. OUTPUT_DIR="src-tauri/target/release/bundle/dmg/"
  39. OUTPUT_FILE="*.dmg"
  40. elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
  41. OUTPUT_DIR="src-tauri/target/release/bundle/msi/"
  42. OUTPUT_FILE="*.msi"
  43. fi
  44. echo ""
  45. echo "📁 输出位置: $OUTPUT_DIR"
  46. echo "📦 生成文件: $OUTPUT_FILE"
  47. echo ""
  48. echo "🎉 打包成功!应用已包含内置Chromium浏览器,可以独立运行。"
  49. # 可选:显示文件大小
  50. if [[ -d "$OUTPUT_DIR" ]]; then
  51. echo ""
  52. echo "📊 文件信息:"
  53. ls -lh "$OUTPUT_DIR" | grep -E "\.(exe|app|AppImage|msi|dmg)$"
  54. fi