Files
wwjcloud/tools/README.md

137 lines
3.8 KiB
Markdown
Raw Normal View History

# Tools 工具集
本目录包含项目开发和维护过程中使用的各种开发工具。
## 🛠️ 核心工具
### `service-migration-master.js`
**服务层迁移主工具** - 一站式解决方案
整合所有服务层迁移功能,包括清理、对齐、验证等。
```bash
# 运行服务层迁移
node tools/service-migration-master.js
```
**功能特性:**
- ✅ 分析 PHP 项目结构
- ✅ 清理多余文件
- ✅ 对齐文件结构
- ✅ 完善业务逻辑
- ✅ 更新模块配置
- ✅ 验证迁移完整性
### `auto-mapping-checker.js`
**PHP与NestJS项目自动映射检查器**
检查PHP项目与NestJS项目的模块、控制器、服务等对应关系确保迁移的完整性。
```bash
# 运行映射检查
node tools/auto-mapping-checker.js
```
**功能特性:**
- ✅ 检查控制器映射关系
- ✅ 检查服务映射关系
- ✅ 生成详细的对比报告
- ✅ 识别缺失的NestJS文件
- ✅ 提供匹配度统计
### `structure-validator.js`
**NestJS项目结构验证器**
检查NestJS项目的目录结构、分层规范、命名规范等确保代码质量。
```bash
# 运行结构验证
node tools/structure-validator.js
```
**功能特性:**
- 🏗️ 检查基础目录结构
- 📦 验证模块结构完整性
- 📝 检查文件命名规范
- 🔗 验证分层架构
- 📊 生成详细验证报告
### `scan-guards.js`
**守卫扫描工具**
扫描项目中的守卫使用情况,检查权限控制的完整性。
```bash
# 扫描守卫使用情况
node tools/scan-guards.js
```
### `generate-entities-from-sql.js`
**实体生成工具**
从SQL文件自动生成TypeORM实体类。
```bash
# 从SQL生成实体
node tools/generate-entities-from-sql.js
```
## 📁 目录结构
```
tools/
├── README.md # 本说明文档
├── service-migration-master.js # 服务层迁移主工具
├── auto-mapping-checker.js # PHP-NestJS映射检查器
├── structure-validator.js # 项目结构验证器
├── scan-guards.js # 守卫扫描工具
├── generate-entities-from-sql.js # 实体生成工具
├── contracts/ # 契约文件目录
│ ├── routes.json # 路由契约文件
│ ├── routes.php.json # PHP 路由契约
│ ├── routes.java.json # Java 路由契约
│ └── ... # 其他契约文件
└── deploy/ # 部署相关脚本
├── infra/ # 基础设施脚本
└── kong/ # Kong网关配置
```
## 🚀 使用指南
### 开发阶段
1. **服务迁移**: 使用 `service-migration-master.js` 完成服务层迁移
2. **结构检查**: 定期运行 `structure-validator.js` 确保项目结构规范
3. **映射验证**: 使用 `auto-mapping-checker.js` 检查PHP迁移进度
### 质量保证
- 所有工具都支持 `--help` 参数查看详细用法
- 建议在CI/CD流程中集成这些检查工具
- 定期运行工具确保代码质量
### 最佳实践
1. **持续验证**: 每次提交前运行结构验证
2. **映射同步**: 定期检查PHP-NestJS映射关系
3. **服务迁移**: 使用主工具完成服务层迁移
## 🔧 工具开发
### 添加新工具
1.`tools/` 目录下创建新的 `.js` 文件
2. 添加 `#!/usr/bin/env node` 头部
3. 实现主要功能逻辑
4. 更新本README文档
### 工具规范
- 使用Node.js原生模块避免额外依赖
- 提供清晰的错误信息和帮助文档
- 支持命令行参数和选项
- 输出格式化的结果报告
## 📞 支持
如果在使用过程中遇到问题,请:
1. 检查Node.js版本 (建议 >= 14.0.0)
2. 确保项目路径正确
3. 查看工具的帮助信息
4. 提交Issue或联系开发团队