diff --git a/build/clean-and-build.bat b/build/clean-and-build.bat new file mode 100644 index 0000000..2bd9ac8 --- /dev/null +++ b/build/clean-and-build.bat @@ -0,0 +1,104 @@ +@echo off +chcp 65001 >nul +echo ======================================== +echo 清理并重新打包 +echo ======================================== +echo. + +echo [1/5] 结束所有相关进程... +echo 正在停止 NPQS9100... +taskkill /F /IM NPQS9100.exe 2>nul + +echo 正在停止 MySQL... +taskkill /F /IM mysqld.exe 2>nul +timeout /t 2 /nobreak >nul + +REM 验证 MySQL 是否真的停止了 +tasklist | find /I "mysqld.exe" >nul 2>&1 +if %errorlevel% equ 0 ( + echo ! MySQL 进程还在运行,再次尝试... + taskkill /F /IM mysqld.exe 2>nul + timeout /t 2 /nobreak >nul + + REM 再次验证 + tasklist | find /I "mysqld.exe" >nul 2>&1 + if %errorlevel% equ 0 ( + echo ! MySQL 进程仍在运行,使用强制方法... + REM 找出所有 mysqld.exe 的 PID 并逐个杀死 + for /f "tokens=2" %%a in ('tasklist ^| find /I "mysqld.exe"') do ( + echo 强制结束 PID: %%a + taskkill /F /PID %%a 2>nul + ) + timeout /t 2 /nobreak >nul + ) +) + +REM 最终验证 +tasklist | find /I "mysqld.exe" >nul 2>&1 +if %errorlevel% equ 0 ( + echo ✗ 警告:MySQL 进程可能仍在运行 + echo 请手动运行 build\extraResources\mysql\kill-running-port.bat + pause +) else ( + echo ✓ MySQL 已完全停止 +) + +echo 正在停止 Java... +taskkill /F /IM java.exe 2>nul +taskkill /F /IM javaw.exe 2>nul +echo ✓ 所有进程已结束 +timeout /t 2 /nobreak >nul +echo. + +echo [2/5] 删除 out 目录... +cd /d "%~dp0.." +if exist out ( + rmdir /s /q out 2>nul + if exist out ( + echo ✗ 删除失败,请手动删除 out 目录 + pause + exit /b 1 + ) else ( + echo ✓ out 目录已删除 + ) +) else ( + echo ✓ out 目录不存在 +) +echo. + +echo [3/5] 构建前端代码... +call npm run build-frontend +if %errorlevel% neq 0 ( + echo ✗ 前端构建失败 + pause + exit /b 1 +) +echo ✓ 前端代码构建完成 +echo. + +echo [4/5] 构建 electron 代码... +call npm run build-electron +if %errorlevel% neq 0 ( + echo ✗ electron 构建失败 + pause + exit /b 1 +) +echo ✓ electron 代码构建完成 +echo. + +echo [5/5] 打包 Windows 版本(包含代码加密)... +call npm run build-w +if %errorlevel% neq 0 ( + echo ✗ 打包失败 + pause + exit /b 1 +) +echo. + +echo ======================================== +echo ✓ 打包完成! +echo 输出目录: out\win-unpacked\ +echo ======================================== +echo. +pause +