# 默认目标:显示帮助 .DEFAULT_GOAL := help # ===== 后端(Python / FastAPI,uv 管理) ===== .PHONY: backend-setup backend-setup: ## 安装后端依赖(uv sync) cd backend && uv sync .PHONY: backend-dev backend-dev: ## 启动后端开发服务(127.0.0.1:8000) cd backend && uv run uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 .PHONY: backend-test backend-test: ## 运行后端测试(pytest) cd backend && uv run pytest .PHONY: backend-lint backend-lint: ## 后端静态检查(ruff + mypy) cd backend && uv run ruff check . && uv run mypy app # ===== 灵台引擎(C++23 / CMake) ===== .PHONY: engine-build engine-build: ## 构建灵台引擎(CMake + Ninja/Makefile) cmake -S engine -B engine/build -DCMAKE_BUILD_TYPE=Release && cmake --build engine/build .PHONY: engine-test engine-test: ## 运行灵台引擎测试(ctest) cmake -S engine -B engine/build -DCMAKE_BUILD_TYPE=Debug && cmake --build engine/build && ctest --test-dir engine/build --output-on-failure # ===== 数据库(PostgreSQL 统一,ADR-024) ===== .PHONY: docker-up docker-up: ## 启动本地 PostgreSQL(docker compose) docker compose -f docker/docker-compose.yml up -d .PHONY: docker-down docker-down: ## 停止本地 PostgreSQL docker compose -f docker/docker-compose.yml down .PHONY: backend-migrate backend-migrate: ## 执行数据库迁移(Alembic upgrade head) cd backend && uv run alembic upgrade head # ===== 契约(OpenAPI 3.1 单一真源) ===== .PHONY: openapi-lint openapi-lint: ## 校验 OpenAPI 契约(redocly lint + bundle) npx --yes @redocly/cli@latest lint openapi/openapi.yaml --config openapi/redocly.yaml && npx --yes @redocly/cli@latest bundle openapi/openapi.yaml -o openapi/bundled.json .PHONY: generate generate: openapi-lint ## 生成代码(TypeScript 类型等) cd frontend && npm run generate:api # ===== 前端与桌面(Next.js / Tauri v2) ===== .PHONY: frontend-setup frontend-setup: ## 安装前端依赖 cd frontend && npm install .PHONY: frontend-dev frontend-dev: ## 启动前端开发服务(127.0.0.1:3000) cd frontend && npm run dev # ===== 帮助 ===== .PHONY: help help: ## 显示本帮助 @echo "Hunjing 统一命令入口(详见各目标 ## 说明)" @echo @grep -E '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}'