Files
wwjcloud/tools/README.md
万物街 127a4db1e3 feat: 完成sys模块迁移,对齐PHP/Java框架
- 重构sys模块架构,严格按admin/api/core分层
- 对齐所有sys实体与数据库表结构
- 实现完整的adminapi控制器,匹配PHP/Java契约
- 修复依赖注入问题,确保服务正确注册
- 添加自动迁移工具和契约验证
- 完善多租户支持和审计功能
- 统一命名规范,与PHP业务逻辑保持一致
2025-09-21 21:29:28 +08:00

3.2 KiB
Raw Blame History

Tools 工具集

本目录包含项目开发和维护过程中使用的各种开发工具。

🛠️ 工具列表

核心开发工具

auto-mapping-checker.js

PHP与NestJS项目自动映射检查器

检查PHP项目与NestJS项目的模块、控制器、服务等对应关系确保迁移的完整性。

# 运行映射检查
node tools/auto-mapping-checker.js

功能特性:

  • 检查控制器映射关系
  • 检查服务映射关系
  • 生成详细的对比报告
  • 识别缺失的NestJS文件
  • 提供匹配度统计

structure-validator.js

NestJS项目结构验证器

检查NestJS项目的目录结构、分层规范、命名规范等确保代码质量。

# 运行结构验证
node tools/structure-validator.js

功能特性:

  • 🏗️ 检查基础目录结构
  • 📦 验证模块结构完整性
  • 📝 检查文件命名规范
  • 🔗 验证分层架构
  • 📊 生成详细验证报告

路由和API工具

export-routes.js

路由导出工具

扫描NestJS项目中的所有路由导出API接口清单。

# 导出路由信息
node tools/export-routes.js

scan-guards.js

守卫扫描工具

扫描项目中的守卫使用情况,检查权限控制的完整性。

# 扫描守卫使用情况
node tools/scan-guards.js

数据库工具

generate-entities-from-sql.js

实体生成工具

从SQL文件自动生成TypeORM实体类。

# 从SQL生成实体
node tools/generate-entities-from-sql.js

📁 目录结构

scripts/
├── README.md                    # 本说明文档
├── auto-mapping-checker.js      # PHP-NestJS映射检查器
├── structure-validator.js       # 项目结构验证器
├── export-routes.js             # 路由导出工具
├── scan-guards.js               # 守卫扫描工具
├── generate-entities-from-sql.js # 实体生成工具
└── deploy/                      # 部署相关脚本
    ├── infra/                   # 基础设施脚本
    └── kong/                    # Kong网关配置

🚀 使用指南

开发阶段

  1. 结构检查: 定期运行 structure-validator.js 确保项目结构规范
  2. 映射验证: 使用 auto-mapping-checker.js 检查PHP迁移进度
  3. 路由管理: 通过 export-routes.js 导出API文档

质量保证

  • 所有工具都支持 --help 参数查看详细用法
  • 建议在CI/CD流程中集成这些检查工具
  • 定期运行工具确保代码质量

最佳实践

  1. 持续验证: 每次提交前运行结构验证
  2. 映射同步: 定期检查PHP-NestJS映射关系
  3. 文档更新: 保持API文档与代码同步

🔧 工具开发

添加新工具

  1. scripts/ 目录下创建新的 .js 文件
  2. 添加 #!/usr/bin/env node 头部
  3. 实现主要功能逻辑
  4. 更新本README文档

工具规范

  • 使用Node.js原生模块避免额外依赖
  • 提供清晰的错误信息和帮助文档
  • 支持命令行参数和选项
  • 输出格式化的结果报告

📞 支持

如果在使用过程中遇到问题,请:

  1. 检查Node.js版本 (建议 >= 14.0.0)
  2. 确保项目路径正确
  3. 查看工具的帮助信息
  4. 提交Issue或联系开发团队