pridana ikonka, screenshot a popis do README.md
This commit is contained in:
122
build.bat
Normal file
122
build.bat
Normal file
@ -0,0 +1,122 @@
|
||||
@echo off
|
||||
setlocal EnableExtensions
|
||||
|
||||
set "ROOT=%~dp0"
|
||||
if "%ROOT:~-1%"=="\" set "ROOT=%ROOT:~0,-1%"
|
||||
|
||||
set "DIST_DIR=%ROOT%\dist"
|
||||
set "DIST_PUBLIC=%DIST_DIR%\public"
|
||||
set "DIST_APP=%DIST_PUBLIC%"
|
||||
set "FRONTEND_DIR=%ROOT%\frontend"
|
||||
set "BACKEND_DIR=%ROOT%\backend"
|
||||
|
||||
echo [1/8] Cleaning dist...
|
||||
if exist "%DIST_DIR%" (
|
||||
rmdir /S /Q "%DIST_DIR%"
|
||||
if exist "%DIST_DIR%" (
|
||||
echo ERROR: Failed to remove "%DIST_DIR%".
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
|
||||
mkdir "%DIST_DIR%" >nul 2>&1 || (
|
||||
echo ERROR: Failed to create "%DIST_DIR%".
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [2/8] Installing backend dependencies... SKIPED
|
||||
@REM pushd "%BACKEND_DIR%" >nul 2>&1 || (
|
||||
@REM echo ERROR: Backend directory not found: "%BACKEND_DIR%".
|
||||
@REM exit /b 1
|
||||
@REM )
|
||||
|
||||
@REM call composer install --no-dev --optimize-autoloader
|
||||
@REM set "COMPOSER_EXIT=%ERRORLEVEL%"
|
||||
@REM popd >nul
|
||||
@REM if not "%COMPOSER_EXIT%"=="0" (
|
||||
@REM echo ERROR: composer install failed.
|
||||
@REM exit /b 1
|
||||
@REM )
|
||||
|
||||
echo [3/8] Regenerating frontend API client... SKIPED
|
||||
@REM call php "%BACKEND_DIR%\scripts\buildTypeScript.php"
|
||||
@REM if not "%ERRORLEVEL%"=="0" (
|
||||
@REM echo ERROR: TypeScript API client generation failed.
|
||||
@REM exit /b 1
|
||||
@REM )
|
||||
|
||||
echo [4/8] Building frontend...
|
||||
pushd "%FRONTEND_DIR%" >nul 2>&1 || (
|
||||
echo ERROR: Frontend directory not found: "%FRONTEND_DIR%".
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if exist "%FRONTEND_DIR%\node_modules" (
|
||||
echo - npm install
|
||||
call npm.cmd install
|
||||
) else (
|
||||
echo - npm ci
|
||||
call npm.cmd ci
|
||||
)
|
||||
set "NPM_INSTALL_EXIT=%ERRORLEVEL%"
|
||||
if not "%NPM_INSTALL_EXIT%"=="0" (
|
||||
popd >nul
|
||||
echo ERROR: npm dependency install failed.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo - npm run build
|
||||
call npm.cmd run build
|
||||
set "NPM_BUILD_EXIT=%ERRORLEVEL%"
|
||||
if not "%NPM_BUILD_EXIT%"=="0" (
|
||||
popd >nul
|
||||
echo ERROR: npm run build failed.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%FRONTEND_DIR%\dist" (
|
||||
popd >nul
|
||||
echo ERROR: Frontend build output not found at "%FRONTEND_DIR%\dist".
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
popd >nul
|
||||
|
||||
echo [5/8] Copy backend root to dist/... SKIPED
|
||||
@REM call :RunRobocopy "%BACKEND_DIR%" "%DIST_DIR%" /E /R:2 /W:1 /NFL /NDL /NJH /NJS /NP ^
|
||||
@REM /XD "%BACKEND_DIR%\.git" "%BACKEND_DIR%\.vscode" "%BACKEND_DIR%\tests" "%BACKEND_DIR%\node_modules" "%BACKEND_DIR%\frontend" "%BACKEND_DIR%\dist" ^
|
||||
@REM /XF ".env" ".env.*"
|
||||
@REM if errorlevel 1 exit /b 1
|
||||
|
||||
echo [6/8] Copy frontend/dist to dist/public...
|
||||
call :RunRobocopy "%FRONTEND_DIR%\dist" "%DIST_APP%" /E /R:2 /W:1 /NFL /NDL /NJH /NJS /NP
|
||||
if errorlevel 1 exit /b 1
|
||||
|
||||
echo [7/8] Applying .env.production (if present)...
|
||||
set "ENV_NOTE=No backend/.env.production found"
|
||||
if exist "%BACKEND_DIR%\.env.production" (
|
||||
copy /Y "%BACKEND_DIR%\.env.production" "%DIST_DIR%\.env" >nul
|
||||
if errorlevel 1 (
|
||||
echo ERROR: Failed to copy backend/.env.production to dist/.env.
|
||||
exit /b 1
|
||||
)
|
||||
set "ENV_NOTE=Copied backend/.env.production to dist/.env"
|
||||
)
|
||||
|
||||
echo [8/8] Summary
|
||||
echo - Frontend build: OK
|
||||
echo - Backend root copied to: "%DIST_DIR%" (excluding excluded dirs)
|
||||
echo - Frontend assets copied to: "%DIST_APP%"
|
||||
echo - Env: %ENV_NOTE%
|
||||
echo - DocumentRoot should be: "%DIST_PUBLIC%"
|
||||
echo - Frontend app is served from: "%DIST_APP%"
|
||||
echo DONE "%DIST_DIR%"
|
||||
exit /b 0
|
||||
|
||||
:RunRobocopy
|
||||
robocopy %*
|
||||
if errorlevel 8 (
|
||||
echo ERROR: robocopy failed with exit code %ERRORLEVEL%.
|
||||
exit /b 1
|
||||
)
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user