Skip to main content

概述

本指南将帮助您搭建 MCPHub 的本地开发环境,了解项目结构,并掌握开发工作流。
前提条件:请确保已安装 Node.js 18+ 和 Git。

环境准备

系统要求

在开始开发之前,请确保您的系统满足以下要求:

软件依赖

  • Node.js: 18.0+ 版本 - npm: 8.0+ 版本 - Git: 最新版本 - Docker: 可选,用于容器化开发

推荐工具

  • VS Code: 推荐的代码编辑器 - Postman: API 测试工具 - TablePlus: 数据库管理工具 - Docker Desktop: 容器管理

验证环境

# 检查 Node.js 版本
node --version  # 应该 >= 18.0.0

# 检查 npm 版本
npm --version   # 应该 >= 8.0.0

# 检查 Git 版本
git --version

# 检查 Docker(可选)
docker --version

克隆项目

获取源代码

# 克隆主仓库
git clone https://github.com/samanhappy/mcphub.git
cd mcphub

# 或者克隆您的 fork
git clone https://github.com/YOUR_USERNAME/mcphub.git
cd mcphub

项目结构

mcphub/
├── src/                    # 源代码目录
│   ├── controllers/        # 控制器层
│   ├── middleware/         # 中间件
│   ├── models/            # 数据模型
│   ├── routes/            # 路由定义
│   ├── services/          # 业务逻辑层
│   ├── utils/             # 工具函数
│   └── index.ts           # 应用入口
├── tests/                 # 测试文件
├── docs/                  # 文档源码
├── docker/                # Docker 配置
├── scripts/               # 构建脚本
├── prisma/                # 数据库模式
├── package.json           # 项目依赖
├── tsconfig.json          # TypeScript 配置
├── .env.example           # 环境变量示例
└── README.md              # 项目说明

安装依赖

安装项目依赖

# 安装生产和开发依赖
npm install

# 仅安装生产依赖
npm ci --only=production

全局工具安装

# 安装 TypeScript 编译器
npm install -g typescript

# 安装开发工具
npm install -g tsx nodemon prisma

# 安装 MCPHub CLI(可选)
npm install -g @mcphub/cli

配置开发环境

环境变量配置

# 复制环境变量模板
cp .env.example .env

# 编辑环境变量
nano .env
开发环境的 .env 配置示例:
.env
# 应用配置
NODE_ENV=development
PORT=3000
HOST=localhost

启动开发服务器

开发模式启动

# 启动开发服务器(带热重载)
npm run dev

# 或者使用 tsx 直接运行
npx tsx watch src/index.ts

后台模式启动

# 使用 PM2 启动(需要先安装 PM2)
npm install -g pm2
npm run dev:pm2

# 查看进程状态
pm2 status

# 查看日志
pm2 logs mcphub-dev

验证启动

访问以下 URL 验证服务是否正常启动:

开发工作流

1. 功能开发流程

# 1. 创建功能分支
git checkout -b feature/your-feature-name

# 2. 进行开发...

# 3. 运行测试
npm test

# 4. 代码格式化
npm run lint:fix

# 5. 提交代码
git add .
git commit -m "feat: add your feature description"

# 6. 推送分支
git push origin feature/your-feature-name

# 7. 创建 Pull Request

2. 代码规范

MCPHub 项目使用以下代码规范工具:
# 代码检查
npm run lint

# 自动修复
npm run lint:fix

# 格式化代码
npm run format

# 类型检查
npm run type-check

3. 测试开发

# 运行所有测试
npm test

# 运行单元测试
npm run test:unit

# 运行集成测试
npm run test:integration

# 运行测试并生成覆盖率报告
npm run test:coverage

# 监听模式运行测试
npm run test:watch

调试技巧

1. VS Code 调试配置

创建 .vscode/launch.json 文件:
.vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug MCPHub",
      "type": "node",
      "request": "launch",
      "program": "${workspaceFolder}/src/index.ts",
      "runtimeArgs": ["-r", "tsx/cjs"],
      "env": {
        "NODE_ENV": "development"
      },
      "console": "integratedTerminal",
      "skipFiles": ["<node_internals>/**"]
    }
  ]
}

2. 日志调试

使用内置的日志系统进行调试:
import { logger } from '@/utils/logger';

// 不同级别的日志
logger.debug('调试信息', { data });
logger.info('信息日志', { userId });
logger.warn('警告信息', { error });
logger.error('错误信息', { error, stack });

3. 数据库调试

# 查看数据库内容
npx prisma studio

# 重置数据库
npx prisma migrate reset

# 查看迁移状态
npx prisma migrate status

常用开发命令

项目管理

# 安装新依赖
npm install package-name
npm install -D package-name  # 开发依赖

# 更新依赖
npm update

# 清理缓存
npm cache clean --force

# 重新安装依赖
rm -rf node_modules package-lock.json
npm install

构建和部署

# 构建项目
npm run build

# 预览构建结果
npm run preview

# 构建 Docker 镜像
npm run docker:build

# 运行 Docker 容器
npm run docker:run

数据库操作

# 创建新迁移
npx prisma migrate dev --name your-migration-name

# 重置数据库
npx prisma migrate reset

# 推送模式变更
npx prisma db push

# 生成客户端
npx prisma generate

常见问题

错误信息: Error: listen EADDRINUSE :::3000解决方案:
# 查找占用端口的进程
lsof -i :3000

# 杀死进程
kill -9 PID

# 或者使用不同端口
PORT=3001 npm run dev
可能原因: 数据库文件权限或路径问题 解决方案: bash # 检查数据库文件 ls -la data/ # 重新初始化数据库 rm data/dev.db npx prisma migrate dev
解决方案:
# 清理构建缓存
npm run clean

# 重新安装类型定义
npm install @types/node @types/express

# 重新生成 Prisma 客户端
npx prisma generate

进阶主题