5d2bced39f
- PROGRESS.md: update to 2026-05-29 with security hardening (T-005), 4-frontend architecture, AI provider refactoring, discovery features, landing page/referral/quota, desktop layout, admin AI management - AGENTS.md: add AI provider list (Alibaba/NVIDIA, removed Claude/DeepL/Local), DB-driven config, CSRF/rate-limit/CORS notes, admin_ai reload quirk - .env.example: sync with actual config, replace deprecated providers with current Sensenova/OpencodeGo/NVIDIA/Spark/Alibaba - docs/PROJECT_STATUS.md: archive (fully superseded by PROGRESS.md) - Remove generated JS files (_bing_search.js, _batch_search.js) - Remove empty directories (data/corpus, data/models) - Remove backend/.coverage (test artifact) - Fix services/.gitignore to cover _bing_search.js - Include pending AI provider DB admin feature (admin_ai, AIProvider model, AIProviders.vue, migration) and T-008 test report
261 lines
7.7 KiB
Makefile
261 lines
7.7 KiB
Makefile
# TradeMate 外贸小助手 - Makefile
|
|
# 快捷开发命令
|
|
|
|
.PHONY: help install run test build deploy clean logs docker-up docker-down db-migrate db-reset
|
|
|
|
# =====================
|
|
# 默认目标
|
|
# =====================
|
|
help:
|
|
@echo "TradeMate 外贸小助手 - 开发命令"
|
|
@echo ""
|
|
@echo "安装:"
|
|
@echo " make install 安装所有依赖"
|
|
@echo " make install-backend 安装后端依赖"
|
|
@echo " make install-frontend 安装前端依赖"
|
|
@echo ""
|
|
@echo "运行:"
|
|
@echo " make run 启动开发环境 (Docker Compose)"
|
|
@echo " make run-backend 启动后端服务"
|
|
@echo " make run-admin 启动管理后台"
|
|
@echo " make run-user 启动用户工作台"
|
|
@echo " make run-uniapp 启动移动端 H5"
|
|
@echo " make docker-up 启动所有 Docker 服务"
|
|
@echo " make docker-down 停止所有 Docker 服务"
|
|
@echo ""
|
|
@echo "测试:"
|
|
@echo " make test 运行所有后端测试"
|
|
@echo " make test-backend 运行后端测试"
|
|
@echo " make test-coverage 运行测试并生成覆盖率报告"
|
|
@echo ""
|
|
@echo "构建:"
|
|
@echo " make build 构建生产版本"
|
|
@echo " make build-backend 构建后端 Docker 镜像"
|
|
@echo " make build-admin 构建管理后台"
|
|
@echo " make build-user 构建用户工作台"
|
|
@echo " make build-uniapp 构建移动端"
|
|
@echo ""
|
|
@echo "数据库:"
|
|
@echo " make db-migrate 运行数据库迁移"
|
|
@echo " make db-reset 重置数据库 (危险!)"
|
|
@echo ""
|
|
@echo "部署:"
|
|
@echo " make deploy 部署到生产环境"
|
|
@echo " make deploy-staging 部署到预发布环境"
|
|
@echo ""
|
|
@echo "清理:"
|
|
@echo " make clean 清理构建缓存"
|
|
@echo " make clean-docker 清理 Docker 资源"
|
|
@echo ""
|
|
@echo "日志:"
|
|
@echo " make logs 查看所有服务日志"
|
|
@echo " make logs-backend 查看后端日志"
|
|
|
|
# =====================
|
|
# 安装依赖
|
|
# =====================
|
|
install: install-backend install-frontend
|
|
@echo "✅ 所有依赖安装完成"
|
|
|
|
install-backend:
|
|
@echo "📦 安装后端依赖..."
|
|
cd backend && python3 -m venv venv && source venv/bin/activate && pip install --upgrade pip && pip install -r requirements.txt
|
|
@echo "✅ 后端依赖安装完成"
|
|
|
|
install-frontend: install-admin install-user install-uniapp
|
|
@echo "✅ 前端依赖安装完成"
|
|
|
|
install-admin:
|
|
@echo "📦 安装管理后台依赖..."
|
|
cd admin-frontend && npm install
|
|
@echo "✅ 管理后台依赖安装完成"
|
|
|
|
install-user:
|
|
@echo "📦 安装用户工作台依赖..."
|
|
cd user-frontend && npm install
|
|
@echo "✅ 用户工作台依赖安装完成"
|
|
|
|
install-uniapp:
|
|
@echo "📦 安装移动端依赖..."
|
|
cd uni-app && npm install
|
|
@echo "✅ 移动端依赖安装完成"
|
|
|
|
# =====================
|
|
# 运行开发环境
|
|
# =====================
|
|
run: docker-up
|
|
@echo "🚀 开发环境已启动"
|
|
@echo ""
|
|
@echo "访问地址:"
|
|
@echo " 后端 API: http://localhost:8000"
|
|
@echo " API 文档: http://localhost:8000/docs"
|
|
@echo " 管理后台: http://localhost:5173"
|
|
@echo " 用户工作台: http://localhost:5174"
|
|
@echo " 移动端 H5: http://localhost:3000"
|
|
@echo " Nginx 代理: http://localhost:80"
|
|
|
|
run-backend:
|
|
@echo "🚀 启动后端服务..."
|
|
cd backend && source venv/bin/activate && uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
|
|
|
run-admin:
|
|
@echo "🚀 启动管理后台..."
|
|
cd admin-frontend && npm run dev
|
|
|
|
run-user:
|
|
@echo "🚀 启动用户工作台..."
|
|
cd user-frontend && npm run dev
|
|
|
|
run-uniapp:
|
|
@echo "🚀 启动移动端 H5..."
|
|
cd uni-app && npm run dev:h5
|
|
|
|
docker-up:
|
|
@echo "🐳 启动 Docker 服务..."
|
|
docker-compose up -d --build
|
|
@echo "⏳ 等待服务启动..."
|
|
@sleep 10
|
|
|
|
docker-down:
|
|
@echo "🛑 停止 Docker 服务..."
|
|
docker-compose down
|
|
|
|
# =====================
|
|
# 测试
|
|
# =====================
|
|
test: test-backend
|
|
@echo "✅ 测试完成"
|
|
|
|
test-backend:
|
|
@echo "🧪 运行后端测试..."
|
|
cd backend && source venv/bin/activate && pytest tests/ -v --tb=short
|
|
|
|
test-coverage:
|
|
@echo "🧪 运行测试并生成覆盖率报告..."
|
|
cd backend && source venv/bin/activate && pytest tests/ -v --cov=app --cov-report=html --cov-report=term
|
|
@echo "📊 覆盖率报告已生成: backend/htmlcov/index.html"
|
|
|
|
# =====================
|
|
# 构建生产版本
|
|
# =====================
|
|
build: build-backend build-admin build-user build-uniapp
|
|
@echo "✅ 所有构建完成"
|
|
|
|
build-backend:
|
|
@echo "🔨 构建后端 Docker 镜像..."
|
|
docker-compose build backend celery-worker celery-beat
|
|
|
|
build-admin:
|
|
@echo "🔨 构建管理后台..."
|
|
cd admin-frontend && npm run build
|
|
@echo "📁 构建输出: admin-frontend/dist/"
|
|
|
|
build-user:
|
|
@echo "🔨 构建用户工作台..."
|
|
cd user-frontend && npm run build
|
|
@echo "📁 构建输出: user-frontend/dist/"
|
|
|
|
build-uniapp:
|
|
@echo "🔨 构建移动端 H5..."
|
|
cd uni-app && npm run build:h5
|
|
@echo "📁 构建输出: uni-app/dist/"
|
|
|
|
# =====================
|
|
# 数据库操作
|
|
# =====================
|
|
db-migrate:
|
|
@echo "🗄️ 运行数据库迁移..."
|
|
cd backend && source venv/bin/activate && alembic upgrade head
|
|
|
|
db-autogenerate:
|
|
@echo "🗄️ 自动生成迁移脚本..."
|
|
cd backend && source venv/bin/activate && alembic revision --autogenerate -m "$(msg)"
|
|
|
|
db-reset:
|
|
@echo "⚠️ 警告: 即将重置数据库,此操作不可逆!"
|
|
@read -p "确认? (yes/no): " confirm; \
|
|
if [ "$$confirm" = "yes" ]; then \
|
|
cd backend && source venv/bin/activate && alembic downgrade base && alembic upgrade head; \
|
|
echo "✅ 数据库已重置"; \
|
|
else \
|
|
echo "❌ 操作已取消"; \
|
|
fi
|
|
|
|
# =====================
|
|
# 部署
|
|
# =====================
|
|
deploy: build
|
|
@echo "🚀 部署到生产环境..."
|
|
@echo "请确保已完成以下操作:"
|
|
@echo " 1. 更新 .env 中的生产配置"
|
|
@echo " 2. 运行 make db-migrate"
|
|
@echo " 3. 配置 Nginx SSL 证书"
|
|
@echo ""
|
|
@echo "📋 部署步骤:"
|
|
@echo " 1. docker-compose -f docker-compose.prod.yml up -d --build"
|
|
@echo " 2. 验证服务健康检查"
|
|
@echo " 3. 检查日志: make logs"
|
|
|
|
deploy-staging: build
|
|
@echo "🚀 部署到预发布环境..."
|
|
docker-compose -f docker-compose.staging.yml up -d --build
|
|
|
|
# =====================
|
|
# 清理
|
|
# =====================
|
|
clean:
|
|
@echo "🧹 清理构建缓存..."
|
|
cd admin-frontend && npm run clean 2>/dev/null || rm -rf dist node_modules/.cache
|
|
cd user-frontend && npm run clean 2>/dev/null || rm -rf dist node_modules/.cache
|
|
cd uni-app && rm -rf dist node_modules/.cache
|
|
find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
|
|
find . -type f -name "*.pyc" -delete 2>/dev/null || true
|
|
@echo "✅ 清理完成"
|
|
|
|
clean-docker:
|
|
@echo "🧹 清理 Docker 资源..."
|
|
docker-compose down -v
|
|
docker system prune -f
|
|
@echo "✅ Docker 资源清理完成"
|
|
|
|
# =====================
|
|
# 日志
|
|
# =====================
|
|
logs:
|
|
@echo "📋 查看所有服务日志..."
|
|
docker-compose logs -f
|
|
|
|
logs-backend:
|
|
@echo "📋 查看后端日志..."
|
|
docker-compose logs -f backend
|
|
|
|
logs-nginx:
|
|
@echo "📋 查看 Nginx 日志..."
|
|
docker-compose logs -f nginx
|
|
|
|
# =====================
|
|
# 工具命令
|
|
# =====================
|
|
lint-backend:
|
|
@echo "🔍 后端代码检查..."
|
|
cd backend && source venv/bin/activate && flake8 app/ --max-line-length=100 || true
|
|
|
|
lint-frontend:
|
|
@echo "🔍 前端代码检查..."
|
|
cd admin-frontend && npm run lint 2>/dev/null || true
|
|
cd user-frontend && npm run lint 2>/dev/null || true
|
|
|
|
format:
|
|
@echo "🎨 格式化代码..."
|
|
cd backend && source venv/bin/activate && black app/ --line-length 100 || true
|
|
|
|
# =====================
|
|
# 快捷测试用户
|
|
# =====================
|
|
test-user:
|
|
@echo "👤 测试用户信息:"
|
|
@echo " 手机号: 13800138099"
|
|
@echo " 密码: testpass123"
|
|
@echo ""
|
|
@echo "👤 游客模式:"
|
|
@echo " 点击前端 '快速体验' 按钮即可无需登录体验"
|