Files
trade-assistant/Makefile
T
TradeMate Dev 5d2bced39f docs: update project docs and clean up redundant files
- 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
2026-05-29 11:15:33 +08:00

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 " 点击前端 '快速体验' 按钮即可无需登录体验"