169 lines
4.2 KiB
Batchfile
169 lines
4.2 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
setlocal enabledelayedexpansion
|
|
|
|
echo ============================================
|
|
echo Service Party App - Windows Build Script
|
|
echo ============================================
|
|
echo.
|
|
|
|
cd /d "%~dp0"
|
|
|
|
:: Parse command line arguments
|
|
set "DO_CLEAN=0"
|
|
set "DO_CLEAN_ALL=0"
|
|
|
|
if "%1"=="clean" set "DO_CLEAN=1"
|
|
if "%1"=="--clean" set "DO_CLEAN=1"
|
|
if "%1"=="-c" set "DO_CLEAN=1"
|
|
if "%1"=="cleanall" set "DO_CLEAN_ALL=1"
|
|
if "%1"=="--clean-all" set "DO_CLEAN_ALL=1"
|
|
|
|
:: Clean all (includes node_modules)
|
|
if "%DO_CLEAN_ALL%"=="1" (
|
|
echo [CLEAN] Performing full clean...
|
|
if exist "dist" rmdir /s /q "dist"
|
|
if exist "dist-electron" rmdir /s /q "dist-electron"
|
|
if exist "release" rmdir /s /q "release"
|
|
if exist "node_modules" rmdir /s /q "node_modules"
|
|
if exist "package-lock.json" del /q "package-lock.json"
|
|
if exist "node_modules\.cache" rmdir /s /q "node_modules\.cache"
|
|
echo [OK] Full clean completed
|
|
echo.
|
|
)
|
|
|
|
:: Clean build artifacts only
|
|
if "%DO_CLEAN%"=="1" (
|
|
echo [CLEAN] Cleaning build artifacts...
|
|
if exist "dist" rmdir /s /q "dist"
|
|
if exist "dist-electron" rmdir /s /q "dist-electron"
|
|
if exist "release" rmdir /s /q "release"
|
|
if exist "node_modules\.cache" rmdir /s /q "node_modules\.cache"
|
|
echo [OK] Clean completed
|
|
echo.
|
|
)
|
|
|
|
:: Check Node.js
|
|
where node >nul 2>nul
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] Node.js not found. Please install Node.js 18+
|
|
echo Download: https://nodejs.org/
|
|
goto :error
|
|
)
|
|
|
|
:: Check Go
|
|
where go >nul 2>nul
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] Go not found. Please install Go 1.21+
|
|
echo Download: https://go.dev/dl/
|
|
goto :error
|
|
)
|
|
|
|
:: Show versions
|
|
echo [INFO] Node.js version:
|
|
node --version
|
|
echo [INFO] Go version:
|
|
go version
|
|
echo.
|
|
|
|
:: Step 1: Build TSS subprocess
|
|
echo ============================================
|
|
echo [1/4] Building TSS subprocess (Go)...
|
|
echo ============================================
|
|
|
|
cd tss-party
|
|
if not exist "..\bin\win32-x64" mkdir "..\bin\win32-x64"
|
|
|
|
echo Building tss-party.exe...
|
|
go build -ldflags="-s -w" -o ..\bin\win32-x64\tss-party.exe .
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] TSS subprocess build failed
|
|
goto :error
|
|
)
|
|
echo [OK] tss-party.exe created
|
|
cd ..
|
|
echo.
|
|
|
|
:: Step 2: Install dependencies
|
|
echo ============================================
|
|
echo [2/4] Installing npm dependencies...
|
|
echo ============================================
|
|
|
|
if exist "node_modules" (
|
|
if "%DO_CLEAN_ALL%"=="0" (
|
|
echo Dependencies exist, skipping install
|
|
) else (
|
|
call npm install
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] npm install failed
|
|
goto :error
|
|
)
|
|
)
|
|
) else (
|
|
call npm install
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] npm install failed
|
|
goto :error
|
|
)
|
|
)
|
|
echo [OK] Dependencies installed
|
|
echo.
|
|
|
|
:: Step 3: Check resources
|
|
echo ============================================
|
|
echo [3/4] Checking resources...
|
|
echo ============================================
|
|
|
|
if not exist "build" mkdir "build"
|
|
if not exist "build\icon.ico" echo [WARN] build\icon.ico not found, using default icon
|
|
echo.
|
|
|
|
:: Step 4: Build Electron app
|
|
echo ============================================
|
|
echo [4/4] Building Windows application...
|
|
echo ============================================
|
|
|
|
echo Building frontend code...
|
|
call npm run build:win
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] Application build failed
|
|
goto :error
|
|
)
|
|
|
|
echo.
|
|
echo ============================================
|
|
echo Build Complete!
|
|
echo ============================================
|
|
echo.
|
|
echo Output directory: %cd%\release\
|
|
echo.
|
|
|
|
:: List generated files
|
|
if exist "release" (
|
|
echo Generated files:
|
|
dir /b release\*.exe 2>nul
|
|
)
|
|
|
|
echo.
|
|
echo ============================================
|
|
echo Usage Tips
|
|
echo ============================================
|
|
echo.
|
|
echo build-windows.bat Normal build
|
|
echo build-windows.bat clean Clean and rebuild
|
|
echo build-windows.bat cleanall Full clean (delete node_modules) and rebuild
|
|
echo.
|
|
echo Press any key to exit...
|
|
pause >nul
|
|
exit /b 0
|
|
|
|
:error
|
|
echo.
|
|
echo Build failed. Please check error messages.
|
|
echo.
|
|
echo If you encounter module/type errors, try:
|
|
echo build-windows.bat cleanall
|
|
echo.
|
|
pause
|
|
exit /b 1
|