66 lines
2.0 KiB
Batchfile
66 lines
2.0 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul
|
||
title Noval - 小说创作应用
|
||
|
||
:: 先关闭已有的 Noval 进程
|
||
tasklist /FI "WINDOWTITLE eq Noval-Backend*" 2>nul | find /I "cmd.exe" >nul
|
||
if not errorlevel 1 (
|
||
echo [*] 检测到已运行的后端,正在关闭...
|
||
taskkill /FI "WINDOWTITLE eq Noval-Backend*" /F >nul 2>&1
|
||
)
|
||
tasklist /FI "WINDOWTITLE eq Noval-Frontend*" 2>nul | find /I "cmd.exe" >nul
|
||
if not errorlevel 1 (
|
||
echo [*] 检测到已运行的前端,正在关闭...
|
||
taskkill /FI "WINDOWTITLE eq Noval-Frontend*" /F >nul 2>&1
|
||
)
|
||
:: 清理可能残留的占用 8000 端口的进程
|
||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":8000.*LISTENING"') do (
|
||
taskkill /PID %%a /F >nul 2>&1
|
||
)
|
||
timeout /t 1 /nobreak >nul
|
||
|
||
echo ========================================
|
||
echo Noval 启动中...
|
||
echo ========================================
|
||
echo.
|
||
|
||
:: 检查后端虚拟环境
|
||
if not exist "backend\.venv\Scripts\uvicorn.exe" (
|
||
echo [!] 未检测到后端虚拟环境,正在初始化...
|
||
cd backend
|
||
py -3 -m venv .venv
|
||
.venv\Scripts\pip install -r requirements.txt
|
||
cd ..
|
||
echo.
|
||
)
|
||
|
||
:: 检查前端依赖
|
||
if not exist "frontend\node_modules" (
|
||
echo [!] 未检测到前端依赖,正在安装...
|
||
cd frontend
|
||
call npm install
|
||
cd ..
|
||
echo.
|
||
)
|
||
|
||
echo [1/2] 启动后端 (port 8000)...
|
||
start "Noval-Backend" cmd /c "cd backend && .venv\Scripts\uvicorn app.main:app --port 8000 --reload"
|
||
|
||
echo [2/2] 启动前端 (port 5173)...
|
||
start "Noval-Frontend" cmd /c "cd frontend && npm run dev"
|
||
|
||
:: 等待服务就绪后打开浏览器
|
||
timeout /t 3 /nobreak >nul
|
||
start http://localhost:5173
|
||
|
||
echo.
|
||
echo ========================================
|
||
echo Noval 已启动!
|
||
echo 前端: http://localhost:5173
|
||
echo 后端: http://localhost:8000/docs
|
||
echo ========================================
|
||
echo 再次运行此脚本会自动重启所有服务
|
||
echo 后端已启用 --reload,修改代码自动生效
|
||
echo ========================================
|
||
pause
|