# 工具包迁移规划

本文档详细说明了如何将质量相关的配置和工具迁移到 @tianyio/quality-helper 和 @tianyio/fast-util-lib 工具包中，让项目更专注于业务本身。

## 1. 可迁移至 @tianyio/quality-helper 的内容

### 1.1 代码质量工具配置

#### ESLint 配置

项目使用统一的 ESLint 配置，由 @tianyio/quality-helper 提供。

#### Prettier 配置

项目使用统一的 Prettier 配置，由 @tianyio/quality-helper 提供。

### 1.2 Git Hooks 配置

#### Commitlint 配置

项目使用统一的 Commitlint 配置，由 @tianyio/quality-helper 提供。

#### Husky 配置

项目使用 Husky 管理 Git Hooks，配置文件位于 `.husky` 目录。

### 1.3 Lint-Staged 配置

项目使用统一的 Lint-Staged 配置，配置文件为 `.lintstagedrc`。

### 1.4 CLI 工具

@tianyio/quality-helper 提供以下 CLI 命令：

```bash
# 创建项目
npx quality-helper create [project-name]

# 更新配置文件
npx quality-helper update-config

# 更新依赖
npx quality-helper update-deps

# 检查依赖状态
npx quality-helper check-deps
```

## 2. 可迁移至 @tianyio/fast-util-lib 的内容

### 2.1 工具函数

#### 事件系统

```typescript
import { useEvent } from '@tianyio/fast-util-lib'
```

#### 日志模块

```typescript
import { useLogger } from '@tianyio/fast-util-lib'
```

#### 网络模块

```typescript
import { useFetch } from '@tianyio/fast-util-lib'
```

#### 性能监控

```typescript
import { PerformanceMonitor } from '@tianyio/fast-util-lib'
```

#### 错误处理

```typescript
import { initGlobalErrorHandler } from '@tianyio/fast-util-lib'
```

## 3. 迁移计划

### 3.1 第一阶段：配置迁移

1. **ESLint 配置迁移**
   - 使用 @tianyio/quality-helper 提供的统一 ESLint 配置
   - 项目中无需维护复杂的 ESLint 配置文件

2. **Prettier 配置迁移**
   - 使用 @tianyio/quality-helper 提供的统一 Prettier 配置
   - 项目中无需维护复杂的 Prettier 配置文件

3. **Commitlint 配置迁移**
   - 使用 @tianyio/quality-helper 提供的统一 Commitlint 配置
   - 项目中无需维护复杂的 Commitlint 配置文件

### 3.2 第二阶段：脚本迁移

1. **Git Hooks 配置**
   - 使用 Husky 管理 Git Hooks
   - 配置文件位于 `.husky` 目录

2. **Lint-Staged 配置**
   - 使用统一的 Lint-Staged 配置
   - 配置文件为 `.lintstagedrc`

### 3.3 第三阶段：工具函数迁移

1. **事件系统迁移**
   - 使用 @tianyio/fast-util-lib 提供的事件系统
   - 替换项目中的自定义事件实现

2. **日志模块迁移**
   - 使用 @tianyio/fast-util-lib 提供的日志模块
   - 替换项目中的自定义日志实现

3. **网络模块迁移**
   - 使用 @tianyio/fast-util-lib 提供的网络模块
   - 替换项目中的自定义网络请求实现

## 4. 使用方式

### 4.1 安装工具包

```bash
pnpm add -D @tianyio/quality-helper
pnpm add @tianyio/fast-util-lib
```

### 4.2 配置文件使用

#### ESLint 配置

项目使用统一的 ESLint 配置，无需额外配置。

#### Prettier 配置

项目使用统一的 Prettier 配置，无需额外配置。

#### Commitlint 配置

项目使用统一的 Commitlint 配置，无需额外配置。

### 4.3 CLI 命令使用

```bash
# 创建项目
npx quality-helper create my-project

# 更新配置文件
npx quality-helper update-config

# 更新依赖
npx quality-helper update-deps
```

### 4.4 工具函数使用

```typescript
// 事件系统
import { useEvent } from '@tianyio/fast-util-lib'

// 日志模块
import { useLogger } from '@tianyio/fast-util-lib'

// 网络模块
import { useFetch } from '@tianyio/fast-util-lib'

// 性能监控
import { PerformanceMonitor } from '@tianyio/fast-util-lib'

// 错误处理
import { initGlobalErrorHandler } from '@tianyio/fast-util-lib'
```

## 5. 迁移后项目结构优化

### 5.1 简化项目配置文件

迁移后，项目中的配置文件将大大简化：

```
project/
├── eslint.config.js          # 简化为扩展工具包配置
├── prettier.config.js        # 简化为扩展工具包配置
├── commitlint.config.cjs     # 简化为扩展工具包配置
└── .lintstagedrc             # 简化为扩展工具包配置
```

### 5.2 减少脚本文件

迁移后，项目中的自定义脚本文件将减少：

```
project/
└── scripts/
    └── (只保留项目特定的脚本)
```

### 5.3 集中管理质量工具

所有质量相关的工具都通过工具包统一管理：

```json
{
  "devDependencies": {
    "@tianyio/quality-helper": "workspace:*"
  },
  "dependencies": {
    "@tianyio/fast-util-lib": "workspace:*"
  }
}
```

## 6. 优势分析

### 6.1 降低维护成本

- 配置统一管理，一处修改多处生效
- 减少项目中的重复配置文件
- 简化项目结构

### 6.2 提高一致性

- 所有项目使用相同的质量标准
- 统一的代码风格和提交规范
- 一致的测试和构建流程

### 6.3 增强可扩展性

- 工具包提供可扩展的配置方式
- 支持项目特定的定制需求
- 易于升级和维护

### 6.4 促进团队协作

- 统一的开发规范和工具链
- 降低新成员的学习成本
- 提高代码质量和一致性

通过将质量相关的配置、文件、函数、指令等迁移到工具包中，项目可以更专注于业务逻辑的开发，同时确保代码质量和开发效率。
