feat: 完成 Web 搜索界面与静态托管
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
for %%I in ("%~dp0..") do set "PROJECT_ROOT=%%~fI"
|
||||
set "WEB_DIR=%PROJECT_ROOT%\web"
|
||||
set "LIBCLANG_PATH=%PROJECT_ROOT%\.tools\libclang\clang\native"
|
||||
|
||||
where cargo >nul 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] Cargo was not found in PATH
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
where bun >nul 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [ERROR] Bun was not found in PATH
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%LIBCLANG_PATH%\libclang.dll" (
|
||||
echo [ERROR] libclang.dll was not found at
|
||||
echo %LIBCLANG_PATH%
|
||||
echo.
|
||||
echo Install it with
|
||||
echo python -m pip install --target "%PROJECT_ROOT%\.tools\libclang" libclang
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if not exist "%WEB_DIR%\node_modules" (
|
||||
echo [INFO] Installing Web dependencies
|
||||
pushd "%WEB_DIR%"
|
||||
call bun install --frozen-lockfile
|
||||
if errorlevel 1 (
|
||||
popd
|
||||
echo [ERROR] Failed to install Web dependencies
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
popd
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [INFO] Starting backend and Web in this window
|
||||
echo [INFO] Backend: http://127.0.0.1:8080
|
||||
echo [INFO] Web: http://127.0.0.1:5173
|
||||
echo.
|
||||
echo Open http://127.0.0.1:5173 after both services are ready
|
||||
echo Press Ctrl+C once to stop both services
|
||||
echo.
|
||||
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
|
||||
"$backend = $null; $web = $null;" ^
|
||||
"try {" ^
|
||||
" $backend = Start-Process -FilePath 'cargo' -ArgumentList @('run','-p','dht-search','--','--config','dht-search.example.toml') -WorkingDirectory $env:PROJECT_ROOT -NoNewWindow -PassThru;" ^
|
||||
" $web = Start-Process -FilePath 'bun' -ArgumentList @('run','dev','--','--host','127.0.0.1') -WorkingDirectory $env:WEB_DIR -NoNewWindow -PassThru;" ^
|
||||
" while (-not $backend.HasExited -and -not $web.HasExited) { Start-Sleep -Milliseconds 250 }" ^
|
||||
"} finally {" ^
|
||||
" foreach ($process in @($backend, $web)) {" ^
|
||||
" if ($null -ne $process -and -not $process.HasExited) { Stop-Process -Id $process.Id }" ^
|
||||
" }" ^
|
||||
"}"
|
||||
|
||||
endlocal
|
||||
Reference in New Issue
Block a user