将现有的 packages/core-module-mt 复制为 packages/core-module,创建一个核心模块聚合包,用于统一导出和管理核心业务模块(用户、认证、文件、系统配置等)。复制后需要更新 package.json 和相关配置,移除 "-mt" 后缀,使其成为标准的非多租户版本。
Current relevant functionality:
packages/core-module-mt 多租户版本的核心模块聚合包core-module-mt 当前结构:
packages/core-module-mt/
├── package.json # 包配置,名称为 @d8d/core-module-mt
├── tsconfig.json # TypeScript 配置
├── vitest.config.ts # 测试配置
├── user-module-mt/ # 用户管理模块(多租户版本)
├── auth-module-mt/ # 认证管理模块(多租户版本)
├── file-module-mt/ # 文件管理模块(多租户版本)
└── system-config-module-mt/ # 系统配置模块(多租户版本)
Technology stack:
Integration points:
What's being added/changed:
packages/core-module-mt 为 packages/core-module@d8d/core-module-mt 改为 @d8d/core-module-mt 后缀移除user-module-mt 改为 user-module 等Package 架构设计 (复制后):
packages/
├── core-module/ # 核心模块 (新增,非多租户版本)
│ ├── package.json # 更新名称和导出配置
│ ├── tsconfig.json # TypeScript 配置
│ ├── vitest.config.ts # 测试配置
│ ├── user-module/ # 用户管理模块(重命名)
│ ├── auth-module/ # 认证管理模块(重命名)
│ ├── file-module/ # 文件管理模块(重命名)
│ └── system-config-module/ # 系统配置模块(重命名)
├── server/ # 核心服务器 (现有)
├── user-module/ # 独立的用户管理模块 (现有)
├── auth-module/ # 独立的认证管理模块 (现有)
├── file-module/ # 独立的文件管理模块 (现有)
└── ...其他业务模块
How it integrates:
Success criteria:
任务列表:
cp -r packages/core-module-mt packages/core-module@d8d/core-module-mt 改为 @d8d/core-module-mt 后缀main 和 types 字段中的路径files 字段中的目录名称user-module-mt → user-moduleauth-module-mt → auth-modulefile-module-mt → file-modulesystem-config-module-mt → system-config-moduleindex.mt.ts 文件,确保导出路径正确index.mt.ts → index.ts)pnpm typecheck 检查类型错误pnpm test 确保测试通过验收标准:
背景分析: 当前架构:
多租户版本:
core-module-mt 中user-module-mt、auth-module-mt、file-module-mt 只是适配器,重新导出 @d8d/core-module-mt 中的代码非多租户版本(当前):
user-module、auth-module、file-module 包含完整代码目标架构:
core-module 中(通过 Story 1 创建)@d8d/core-module 中的代码任务列表:
user-module 改为适配器模式:
src 目录中的完整代码src/index.ts,重新导出 @d8d/core-module/user-modulesrc/schemas/index.ts,重新导出 @d8d/core-module/user-module/schemas@d8d/core-moduleauth-module 和 file-modulecore-module验收标准:
core-module@d8d/core-modulePrimary Risk: 重命名过程中可能遗漏某些文件或路径 Mitigation: 使用脚本批量重命名,并进行全面检查 Rollback Plan: 保留原始 core-module-mt 目录,可以快速回滚
Primary Risk: package.json 导出配置更新错误 Mitigation: 仔细检查每个导出路径,确保正确移除 "-mt" 后缀 Rollback Plan: 备份原始 package.json,可以恢复
Primary Risk: 类型定义路径不正确 Mitigation: 运行 TypeScript 类型检查,确保所有导入路径正确 Rollback Plan: 保留原始类型定义文件
Primary Risk: 测试失败 Mitigation: 复制后立即运行测试,确保功能正常 Rollback Plan: 如果测试失败,回滚到原始状态
cp -r packages/core-module-mt packages/core-module
需要更新的关键字段:
name: @d8d/core-module-mt → @d8d/core-moduleexports: 所有导出路径中的 -mt 后缀需要移除main 和 types: 更新路径中的 -mt 后缀files: 更新目录名称,移除 -mt 后缀cd packages/core-module
mv user-module-mt user-module
mv auth-module-mt auth-module
mv file-module-mt file-module
mv system-config-module-mt system-config-module
检查以下文件,确保导出路径正确:
user-module/src/index.mt.ts → 可能需要重命名为 index.tsauth-module/src/index.mt.ts → 可能需要重命名为 index.tsfile-module/src/index.ts → 保持原样system-config-module/src/index.mt.ts → 可能需要重命名为 index.tspnpm typecheck 检查类型错误pnpm test 确保测试通过更新前 (core-module-mt):
{
"name": "@d8d/core-module-mt",
"exports": {
"./user-module-mt": {
"import": "./user-module-mt/src/index.mt.ts"
},
"./auth-module-mt": {
"import": "./auth-module-mt/src/index.mt.ts"
}
},
"files": [
"user-module-mt/src",
"auth-module-mt/src"
]
}
更新后 (core-module):
{
"name": "@d8d/core-module",
"exports": {
"./user-module": {
"import": "./user-module/src/index.ts"
},
"./auth-module": {
"import": "./auth-module/src/index.ts"
}
},
"files": [
"user-module/src",
"auth-module/src"
]
}
从 core-module 导入:
import { UserService } from '@d8d/core-module/user-module';
import { AuthService } from '@d8d/core-module/auth-module';
从独立模块导入 (仍然可用):
import { UserService } from '@d8d/user-module';
import { AuthService } from '@d8d/auth-module';
Story 1: 创建 core-module 并更新配置 - 待实现
Story 2: 将现有独立模块改为适配器模式 - 待实现
"请为这个 epic 开发详细的用户故事。关键考虑因素:
Story 1: 这是一个简单的目录复制和重命名任务,不需要复杂的架构设计
packages/core-module-mt 复制到 packages/core-moduleStory 2: 将现有独立模块改为适配器模式
@d8d/core-module 中的代码@d8d/core-module该 epic 的目标是: