ta-core
v1.0.0
Published
一个基于 Turborepo + pnpm 的现代化 Monorepo,包含 React UI 组件库、SDK 和相关应用
Maintainers
Readme
TA Core
一个基于 Turborepo + pnpm 的现代化 Monorepo,包含 React UI 组件库、SDK 和相关应用。
🚀 特性
- 🏗️ Monorepo 架构 - 使用 Turborepo 管理多个包,智能缓存和并行构建
- ⚡ 现代化工具链 - TypeScript、Vite、Tailwind CSS、ESM 优先
- 🧪 完整的测试 - Vitest + Testing Library,支持覆盖率和 UI 测试
- 📚 组件文档 - Storybook 集成,提供交互式组件文档
- 🔍 代码质量 - ESLint + Prettier + Husky,确保代码质量
- 🛡️ 类型安全 - 完整的 TypeScript 支持,严格的类型检查
- 🚀 实时通信 - SSE (Server-Sent Events) SDK,支持实时数据流
- 📦 多格式输出 - 支持 ESM、CJS 和 TypeScript 声明文件
📦 包结构
ta-core/
├── packages/
│ ├── ui/ # React UI 组件库 (@t-agent/ui)
│ │ ├── components/ # 可复用的 React 组件
│ │ ├── utils/ # 工具函数
│ │ └── stories/ # Storybook 文档
│ └── sdk/ # TA Core SDK (@t-agent/sdk)
│ ├── sse/ # Server-Sent Events 管理
│ ├── types/ # TypeScript 类型定义
│ └── config/ # 配置管理
└── apps/ # 应用(待添加)包说明
- @t-agent/ui - React UI 组件库,基于 Tailwind CSS,提供完整的设计系统
- @t-agent/sdk - 核心 SDK,提供 SSE 连接管理、实时通信等功能
🛠️ 开发
环境要求
- Node.js >= 18.0.0
- pnpm >= 8.0.0
快速开始
# 克隆项目
git clone https://github.com/AutomaApp/ta-core.git
cd ta-core
# 安装依赖
pnpm install
# 启动开发模式
pnpm dev安装依赖
pnpm install开发命令
# 🚀 开发模式 - 启动所有包的开发模式
pnpm dev
# 🏗️ 构建所有包
pnpm build
# 🧪 运行测试
pnpm test
# 🔍 代码检查
pnpm lint
# 💅 代码格式化
pnpm format
# 🛡️ 类型检查
pnpm type-check
# 🧹 清理构建文件
pnpm clean
# 📚 启动 Storybook
pnpm storybook
# 📦 构建 Storybook 静态文件
pnpm build-storybook
# 🏷️ 版本管理
# 版本管理功能正在重新设计,敬请期待包特定命令
UI 包 (@t-agent/ui)
cd packages/ui
# 🚀 开发模式
pnpm dev
# 🏗️ 构建
pnpm build
# 🧪 测试
pnpm test
# 📚 Storybook
pnpm storybook
# 🖥️ 测试 UI 界面
pnpm test:uiSDK 包 (@t-agent/sdk)
cd packages/sdk
# 🚀 开发模式
pnpm dev
# 🏗️ 构建
pnpm build
# 🧪 测试
pnpm test
# 🛡️ 类型检查
pnpm type-check📚 文档
- UI 组件库文档 - React UI 组件库完整文档
- SDK 文档 - TA Core SDK 使用指南
- 发布指南 - 详细的版本发布流程
- 开发指南 (待添加) - 详细的开发指南
- 贡献指南 (待添加) - 如何参与项目贡献
🧪 测试
项目使用 Vitest 进行测试,支持:
- ✅ 单元测试 - 组件和函数的单元测试
- 🔄 组件测试 - React 组件的集成测试
- 📊 覆盖率报告 - 完整的代码覆盖率统计
- 🖥️ UI 测试界面 - 可视化的测试运行界面
- ⚡ 快速执行 - 基于 Vite 的超快测试执行
# 🧪 运行所有测试
pnpm test
# 👀 监听模式
pnpm test:watch
# 🖥️ UI 测试界面
pnpm test:ui
# 📊 覆盖率报告
pnpm test:coverage📖 Storybook
使用 Storybook 提供组件文档和交互式示例:
# 🚀 启动 Storybook 开发服务器
pnpm storybook
# 📦 构建静态版本
pnpm build-storybook访问 http://localhost:6006 查看组件文档。
Storybook 特性
- 🎨 交互式组件演示 - 实时预览组件效果
- 📝 完整的组件文档 - 包含 Props、使用示例等
- 🎯 Controls 面板 - 动态调整组件属性
- 📱 响应式预览 - 多设备尺寸预览
- ♿ 可访问性检查 - 内置 a11y 插件
🏷️ 版本管理与发布
项目使用简洁的发布流程,支持 Alpha 和 Release 版本发布。
快速发布
# 🚀 Alpha 版本(早期测试)
pnpm release:alpha
# ✅ Release 版本(正式发布)
pnpm release:stable
# 📖 查看帮助
pnpm release:help发布流程
发布脚本会自动执行以下步骤:
- 检查工作目录状态
- 拉取最新代码
- 安装依赖
- 运行测试
- 构建项目
- 发布到 npm
- 创建 Git 标签
- 提交版本更新
详细的发布流程请查看 发布指南。
🔧 代码质量
ESLint
项目配置了严格的 ESLint 规则,包括:
- 🔷 TypeScript 支持 - 完整的 TS 语法检查
- ⚛️ React 最佳实践 - React Hooks、JSX 规范
- ♿ 可访问性检查 - jsx-a11y 插件确保无障碍访问
- 💅 Prettier 集成 - 统一的代码格式化
- 🚫 严格模式 - 避免常见的 JavaScript 陷阱
Prettier
统一的代码格式化配置,支持:
- 📝 TypeScript/JavaScript
- 🎨 JSON、Markdown、YAML
- ⚙️ 配置文件格式化
Husky + lint-staged
Git hooks 确保代码质量:
- 🔍 提交前检查 - 自动运行 lint 和格式化
- 🚀 快速反馈 - 只检查变更的文件
- 🛡️ 质量保证 - 防止低质量代码进入仓库
🏗️ 构建
Turborepo 管道
项目使用 Turborepo 管理构建管道:
- 🧠 智能缓存 - 避免重复构建,提升效率
- ⚡ 并行构建 - 多包同时构建,节省时间
- 🔗 依赖管理 - 智能的包依赖关系处理
- 📊 构建分析 - 详细的构建统计信息
输出格式
各包支持多种输出格式:
UI 包输出
- 📦 ESM (ES Modules) - 现代模块格式
- 📦 CJS (CommonJS) - 兼容传统环境
- 🏷️ TypeScript 声明文件 - 完整的类型支持
- 🎨 CSS 文件 - 样式文件单独输出
SDK 包输出
- � ESM - ES Modules 格式
- 🏷️ TypeScript 声明文件 - 完整的类型定义
�📈 性能优化
- ⚡ 构建优化 - Vite 提供极速的构建体验
- 🧠 缓存策略 - Turborepo 智能缓存减少重复工作
- ✂️ 代码分割 - 按需加载,减少包体积
- 🌳 Tree Shaking - 自动移除未使用的代码
- 📦 依赖优化 - 精确的依赖管理,避免冗余
🤝 贡献
我们欢迎各种形式的贡献!请查看 贡献指南 了解详情。
开发流程
- 🍴 Fork 项目 - 创建你的项目副本
- 🌟 创建功能分支 -
git checkout -b feature/amazing-feature - 💾 提交更改 -
git commit -m 'Add some amazing feature' - 🧪 运行测试 -
pnpm test确保所有测试通过 - 📤 推送分支 -
git push origin feature/amazing-feature - 🔄 提交 Pull Request - 创建详细的 PR 描述
贡献类型
- 🐛 Bug 修复 - 修复现有问题
- ✨ 新功能 - 添加新的功能特性
- � 文档改进 - 完善文档内容
- 🎨 UI/UX 改进 - 改善用户体验
- ⚡ 性能优化 - 提升性能表现
- 🧪 测试覆盖 - 增加测试用例
�📄 许可证
本项目基于 MIT License 开源。
🆘 支持与反馈
- 🐛 问题反馈 - 提交 Issue
- 📖 查看文档 - 项目文档
- 💬 参与讨论 - GitHub Discussions
- 📧 联系我们 - [email protected]
🌟 致谢
感谢所有为 TA Core 做出贡献的开发者!
TA Core - 构建更好的 React 应用 🚀
Made with ❤️ by AutomaApp
