# 代码质量工具包

## 项目概述

质量助手(Quality Helper)是一个集代码规范、版本管理和开发流程优化于一体的前端开发工具包。提供一站式代码质量解决方案，支持快速集成到现代前端项目开发流程中。

## 目录结构

``` 
├── bin/ # CLI入口文件 
├── src/ # 核心代码 
│ ├── plugins/ # 功能插件 
│ │ ├── version/ # vite启动时，生成版本信息，并更新到对应的环境文件中
│ ├── init/ # 初始化功能
│ │ ├── package  # package.json文件更新
│ │ │ ├── dependencies  # 依赖包管理
│ │ │ ├── scripts  # 构建指令管理
│ │ │ ├── index  # 入口
│ │ ├── config  # 合并配置文件
│ │ ├── env  # 环境变量文件管理
│ │ ├── hursky  # Git hooks管理
│ │ ├── merge  # 配置文件合并
│ │ └── index  # 初始化功能入口
├── templates/ # 配置模板 
│ ├── .husky/ # Git hooks配置文件
│ ├── config/ # 各类配置模板
│ └── env/ # 环境变量文件
```

## 功能特性

### 核心功能

- **版本信息生成**：自动提取Git仓库元数据（时间戳/标签/提交哈希/分支）
- **代码规范**：集成ESLint/Prettier/editorConfig配置模板
- **环境变量**：统一环境变量及构建指令
- **提交规范**：自动配置Git hooks

### 插件系统

- **eslint/prettier**: 支持@tianyio/eslint-config等私有配置继承
- **husky**: 自动配置 commit-msg 和 pre-commit hooks
- **version**: 语义化版本号管理（遵循 semver 规范）
- **config**: 支持 JSON/YAML 配置格式转换

## 插件列表

| 插件名称            | 版本规范   | 配置文件              | 
|-----------------|--------|-------------------|
| eslint          | 9.29.0 | .eslintrc.js      |
| prettier        | 3.5.3  | .prettierrc       |
| husky           | 9.1.7  | .husky/pre-commit |
| lint-staged     | 16.1.2 | .lintstagedrc     |
| @commitlint/cli | 19.8.1 | .commitlintrc.js  |

## 安装使用

```bash
# 全局安装
npm install @tianyio/quality-helper
# 初始化配置
npx quality-helper
```

## 配置说明

- `.npmrc`: 包管理器配置
- `.editorconfig`: 编辑器规范
- [eslint.config.js](./eslint.config.js): 代码规范配置
- `.husky/`: Git hooks配置目录

## 版本信息说明

### 生成的版本信息包含：

```ts
interface VersionInfo {
  time: string; // 构建时间（YYYY-MM-DD HH:mm:ss.SSS） 
  tag: string; // 最近Git标签（如v1.2.3
  hash: string; // 提交哈希（如abcdefg
  branch: string; // 当前分支（如main） 
}
```

### 使用

```ts
// vite.config.ts
import { versionInfoPlugin } from '@tianyio/quality-helper'

defineConfig({
  plugins: [versionInfoPlugin()]
})
```

### 获取版本信息

```ts
import.meta.env.__APP_VERSION__
```

## 开发指南

### 本地调试

```bash
# 软链接安装
pnpm link --global
# 在目标项目中使用
pnpm link @tianyio/quality-helper
# or
pnpm add @tianyio/quality-helper@workspace:*
````