# 工具包使用示例

本文档展示了如何在项目中使用 @tianyio/quality-helper 和 @tianyio/fast-util-lib 工具包。

## 1. 质量工具包使用 (@tianyio/quality-helper)

### 1.1 CLI 命令使用

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

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

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

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

### 1.2 Vite 插件集成

在 vite.config.ts 中集成版本信息插件：

```typescript
import { defineConfig } from 'vite'
import { versionInfoPlugin } from '@tianyio/quality-helper/version-plugin'

export default defineConfig({
  plugins: [
    versionInfoPlugin({
      // 开发模式下提供API接口
      injectGitInfo: true,
      injectBuildTime: true,
      // 生产构建时生成版本文件
      generateFile: true,
      outputPath: 'dist/version.json',
    }),
  ],
})
```

在 Vue 组件中使用版本信息：

```
<template>
  <div class="version-info">
    <p>版本: {{ versionInfo.version }}</p>
    <p>构建时间: {{ versionInfo.buildTime }}</p>
    <p>Git提交: {{ versionInfo.gitCommitShort }}</p>
  </div>
</template>

<script setup lang="ts">
import versionInfo from 'virtual:version-info'
</script>
```

## 2. 工具库使用 (@tianyio/fast-util-lib)

### 2.1 事件系统

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

const { on, off, emit } = useEvent()

// 监听事件
const listenerId = on('user-login', (data) => {
  console.log('用户登录:', data)
})

// 触发事件
emit('user-login', { userId: 123, username: 'john' })

// 取消监听
off('user-login', listenerId)
```

### 2.2 日志模块

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

const logger = useLogger({
  level: 'debug',
  prefix: '[MyApp]'
})

logger.debug('调试信息')
logger.info('普通信息')
logger.warn('警告信息')
logger.error('错误信息')
```

### 2.3 网络模块

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

// 发送 GET 请求
const { data, error, loading } = useFetch('/api/users')

// 发送 POST 请求
const { data: postData, error: postError } = useFetch('/api/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ name: 'John' })
})
```

### 2.4 性能监控

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

// 初始化性能监控
const monitor = new PerformanceMonitor()

// 标记性能事件
monitor.mark('app-start')

// 测量性能
monitor.measure('app-load', 'app-start', 'app-end')

// 获取性能数据
const metrics = monitor.getMetrics()
console.log(metrics)
```

### 2.5 错误处理

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

// 初始化全局错误处理
initGlobalErrorHandler((error, type, context) => {
  console.error(`错误类型: ${type}`, error)

  // 根据错误类型处理
  switch (type) {
    case ERROR_TYPE.JAVASCRIPT:
      // 处理 JavaScript 错误
      break
    case ERROR_TYPE.PROMISE:
      // 处理 Promise 错误
      break
    case ERROR_TYPE.RESOURCE:
      // 处理资源加载错误
      break
  }
})
```

## 3. 配置文件使用

### 3.1 ESLint 配置

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

### 3.2 Prettier 配置

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

### 3.3 Commitlint 配置

项目使用统一的 Commitlint 配置，支持以下提交类型：

- `update` - 新功能
- `defect` - 修复bug
- `docs` - 文档更新
- `style` - 代码格式化
- `refactor` - 重构
- `perf` - 性能优化
- `test` - 测试相关
- `build` - 构建相关
- `ci` - CI/CD相关
- `chore` - 其他杂项
- `revert` - 回滚
- `wip` - 进行中的工作
- `release` - 发布版本
- `hotfix` - 热修复
- `security` - 安全修复

## 4. 最佳实践

1. **工具包版本管理**: 使用 `workspace:*` 协议确保使用工作区内的最新版本
2. **按需导入**: 只导入需要的模块，利用 Tree Shaking 减少打包体积
3. **类型安全**: 充分利用 TypeScript 类型定义
4. **错误处理**: 合理使用错误处理模块捕获和处理异常
5. **性能监控**: 在关键路径添加性能监控点
