refactor(scripts): 重组脚本目录结构
将 scripts 目录按功能分组: - api-generator/ - API 代码生成工具 - doc-parser/ - 文档解析工具 - changelog/ - CHANGELOG 管理工具 变更: - 为每个子目录添加 README.md 说明文档 - 更新 package.json 中的脚本路径 - 添加 scripts/README.md 主说明文档 - 添加 整理报告.md 记录整理过程 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Showing
19 changed files
with
371 additions
and
8 deletions
| ... | @@ -29,15 +29,15 @@ | ... | @@ -29,15 +29,15 @@ |
| 29 | "postinstall": "weapp-tw patch", | 29 | "postinstall": "weapp-tw patch", |
| 30 | "lint": "eslint --ext .js,.vue src", | 30 | "lint": "eslint --ext .js,.vue src", |
| 31 | "test": "vitest run", | 31 | "test": "vitest run", |
| 32 | - "api:generate": "node scripts/generateApiFromOpenAPI.js", | 32 | + "api:generate": "node scripts/api-generator/generateApiFromOpenAPI.js", |
| 33 | - "changelog:check": "bash scripts/check-changelog.sh 7", | 33 | + "changelog:check": "bash scripts/changelog/check-changelog.sh 7", |
| 34 | - "changelog:check:30": "bash scripts/check-changelog.sh 30", | 34 | + "changelog:check:30": "bash scripts/changelog/check-changelog.sh 30", |
| 35 | - "changelog:check:all": "bash scripts/check-changelog.sh 0", | 35 | + "changelog:check:all": "bash scripts/changelog/check-changelog.sh 0", |
| 36 | "prepare": "husky", | 36 | "prepare": "husky", |
| 37 | - "parse:docs": "node scripts/parse-docs.js", | 37 | + "parse:docs": "node scripts/doc-parser/parse-docs.js", |
| 38 | - "parse:docs:list": "node scripts/parse-docs.js --list", | 38 | + "parse:docs:list": "node scripts/doc-parser/parse-docs.js --list", |
| 39 | - "parse:docs:status": "node scripts/parse-docs.js --status", | 39 | + "parse:docs:status": "node scripts/doc-parser/parse-docs.js --status", |
| 40 | - "parse:docs:file": "node scripts/parse-docs.js --file=", | 40 | + "parse:docs:file": "node scripts/doc-parser/parse-docs.js --file=", |
| 41 | "release": "standard-version" | 41 | "release": "standard-version" |
| 42 | }, | 42 | }, |
| 43 | "browserslist": [ | 43 | "browserslist": [ | ... | ... |
scripts/README.md
0 → 100644
| 1 | +# Scripts 目录说明 | ||
| 2 | + | ||
| 3 | +> 最后更新: 2026-02-15 | ||
| 4 | + | ||
| 5 | +本目录包含项目的各类开发工具脚本,按功能分组存放在子目录中。 | ||
| 6 | + | ||
| 7 | +## 📁 目录结构 | ||
| 8 | + | ||
| 9 | +``` | ||
| 10 | +scripts/ | ||
| 11 | +├── api-generator/ # API 代码生成工具 | ||
| 12 | +├── doc-parser/ # 文档解析工具 | ||
| 13 | +├── changelog/ # CHANGELOG 管理工具 | ||
| 14 | +└── README.md # 本说明文件 | ||
| 15 | +``` | ||
| 16 | + | ||
| 17 | +--- | ||
| 18 | + | ||
| 19 | +## 🚀 快速使用 | ||
| 20 | + | ||
| 21 | +### API 代码生成 | ||
| 22 | +```bash | ||
| 23 | +pnpm api:generate # 从 OpenAPI 生成 API 接口 | ||
| 24 | +``` | ||
| 25 | + | ||
| 26 | +### 文档解析 | ||
| 27 | +```bash | ||
| 28 | +pnpm parse:docs # 解析待处理文档 | ||
| 29 | +pnpm parse:docs:list # 查看待处理文档 | ||
| 30 | +pnpm parse:docs:status # 查看解析状态 | ||
| 31 | +``` | ||
| 32 | + | ||
| 33 | +### CHANGELOG 检查 | ||
| 34 | +```bash | ||
| 35 | +pnpm changelog:check # 检查最近 7 天的漏记 | ||
| 36 | +pnpm changelog:check:30 # 检查最近 30 天的漏记 | ||
| 37 | +``` | ||
| 38 | + | ||
| 39 | +--- | ||
| 40 | + | ||
| 41 | +## 📦 子目录详情 | ||
| 42 | + | ||
| 43 | +| 目录 | 用途 | 相关 npm scripts | | ||
| 44 | +|------|------|-----------------| | ||
| 45 | +| `api-generator/` | 从 OpenAPI 规范生成 JavaScript API 代码 | `api:generate` | | ||
| 46 | +| `doc-parser/` | 解析 PDF/DOCX 等文档,智能提取配置字段 | `parse:docs:*` | | ||
| 47 | +| `changelog/` | 检查和归档 CHANGELOG 记录 | `changelog:check:*` | | ||
| 48 | + | ||
| 49 | +--- | ||
| 50 | + | ||
| 51 | +## 🔗 相关文档 | ||
| 52 | + | ||
| 53 | +- [API 生成指南](./api-generator/GUIDE.md) | ||
| 54 | +- [文档解析快速开始](./doc-parser/QUICKSTART.md) | ||
| 55 | +- [CHANGELOG 规范](../docs/CHANGELOG.md) |
scripts/api-generator/README.md
0 → 100644
| 1 | +# API 代码生成工具 | ||
| 2 | + | ||
| 3 | +从 OpenAPI 规范自动生成 JavaScript API 接口代码。 | ||
| 4 | + | ||
| 5 | +## 📁 文件说明 | ||
| 6 | + | ||
| 7 | +| 文件 | 说明 | 使用频率 | | ||
| 8 | +|------|------|---------| | ||
| 9 | +| `generateApiFromOpenAPI.js` | 主脚本 - 从 OpenAPI 生成 API 代码 | ⭐⭐⭐ 高频 | | ||
| 10 | +| `apiDiff.js` | API 对比工具 - 检测 API 变更和破坏性改动 | ⭐⭐ 中频 | | ||
| 11 | +| `test-generate.js` | 测试脚本 - 验证生成的 API 文件是否正确 | ⭐ 低频 | | ||
| 12 | +| `API_GUIDE.md` | 使用指南 - 详细的 API 维护工作流文档 | 📖 文档 | | ||
| 13 | + | ||
| 14 | +## 🚀 使用方式 | ||
| 15 | + | ||
| 16 | +```bash | ||
| 17 | +# 生成所有 API 接口 | ||
| 18 | +pnpm api:generate | ||
| 19 | + | ||
| 20 | +# 生成指定模块 | ||
| 21 | +pnpm api:generate -- --module=user | ||
| 22 | +``` | ||
| 23 | + | ||
| 24 | +## 📖 详细文档 | ||
| 25 | + | ||
| 26 | +参见 [API_GUIDE.md](./API_GUIDE.md) 了解完整的 API 维护工作流。 | ||
| 27 | + | ||
| 28 | +## 🔧 工作原理 | ||
| 29 | + | ||
| 30 | +1. 扫描 `docs/api-specs/` 目录下的 OpenAPI 文档 | ||
| 31 | +2. 解析 Markdown 文件中的 YAML 规范 | ||
| 32 | +3. 检测 API 变更(新增、修改、删除) | ||
| 33 | +4. 生成符合项目规范的 JavaScript API 代码 | ||
| 34 | +5. 保存到 `src/api/` 目录 | ||
| 35 | + | ||
| 36 | +## 📝 生成代码示例 | ||
| 37 | + | ||
| 38 | +输入 (OpenAPI YAML): | ||
| 39 | +```yaml | ||
| 40 | +paths: | ||
| 41 | + /user/info: | ||
| 42 | + get: | ||
| 43 | + summary: 获取用户信息 | ||
| 44 | + parameters: | ||
| 45 | + - name: user_id | ||
| 46 | + in: query | ||
| 47 | +``` | ||
| 48 | + | ||
| 49 | +输出 (JavaScript): | ||
| 50 | +```javascript | ||
| 51 | +/** | ||
| 52 | + * 获取用户信息 | ||
| 53 | + * @param {Object} params | ||
| 54 | + * @param {string} params.user_id - 用户ID | ||
| 55 | + */ | ||
| 56 | +export const getUserInfoAPI = (params) => { | ||
| 57 | + return buildApiUrl('user_info', params) | ||
| 58 | +} | ||
| 59 | +``` |
scripts/changelog/README.md
0 → 100644
| 1 | +# CHANGELOG 管理工具 | ||
| 2 | + | ||
| 3 | +检查和归档项目的 CHANGELOG 记录。 | ||
| 4 | + | ||
| 5 | +## 📁 文件说明 | ||
| 6 | + | ||
| 7 | +| 文件 | 说明 | 使用频率 | | ||
| 8 | +|------|------|---------| | ||
| 9 | +| `check-changelog.sh` | 漏记检查 - 扫描 git 提交,检查 CHANGELOG 漏记 | ⭐⭐⭐ 高频 | | ||
| 10 | +| `archive-changelog.sh` | 归档脚本 - 当记录超过 20 条时自动归档 | ⭐ 低频 | | ||
| 11 | + | ||
| 12 | +## 🚀 使用方式 | ||
| 13 | + | ||
| 14 | +### 检查漏记 | ||
| 15 | + | ||
| 16 | +```bash | ||
| 17 | +# 检查最近 7 天(默认) | ||
| 18 | +pnpm changelog:check | ||
| 19 | + | ||
| 20 | +# 检查最近 30 天 | ||
| 21 | +pnpm changelog:check:30 | ||
| 22 | + | ||
| 23 | +# 检查所有提交 | ||
| 24 | +pnpm changelog:check:all | ||
| 25 | + | ||
| 26 | +# 直接运行 | ||
| 27 | +./scripts/changelog/check-changelog.sh 7 | ||
| 28 | +``` | ||
| 29 | + | ||
| 30 | +### 归档旧记录 | ||
| 31 | + | ||
| 32 | +```bash | ||
| 33 | +# 直接运行归档脚本 | ||
| 34 | +./scripts/changelog/archive-changelog.sh | ||
| 35 | +``` | ||
| 36 | + | ||
| 37 | +## 📋 检查输出示例 | ||
| 38 | + | ||
| 39 | +``` | ||
| 40 | +====================================== | ||
| 41 | + CHANGELOG 漏记检查工具 | ||
| 42 | +====================================== | ||
| 43 | + | ||
| 44 | +检查范围: 最近 7 天 | ||
| 45 | + | ||
| 46 | +[1/4] 正在获取 git 提交记录... | ||
| 47 | + 找到 5 个提交 | ||
| 48 | + | ||
| 49 | +[2/4] 正在读取 CHANGELOG 记录... | ||
| 50 | + 找到 3 条记录 | ||
| 51 | + | ||
| 52 | +[3/4] 正在对比... | ||
| 53 | + | ||
| 54 | +[4/4] 生成报告... | ||
| 55 | + | ||
| 56 | +⚠️ 发现 2 处漏记: | ||
| 57 | + | ||
| 58 | +1. feat(plan): 添加计划书表单验证 | ||
| 59 | + 提交: abc1234 (2026-02-14) | ||
| 60 | + 建议: 在 CHANGELOG 中添加此功能记录 | ||
| 61 | + | ||
| 62 | +2. fix(login): 修复登录跳转问题 | ||
| 63 | + 提交: def5678 (2026-02-13) | ||
| 64 | + 建议: 在 CHANGELOG 中添加此修复记录 | ||
| 65 | +``` | ||
| 66 | + | ||
| 67 | +## 🔧 归档规则 | ||
| 68 | + | ||
| 69 | +当 `docs/CHANGELOG.md` 记录数超过 20 条时: | ||
| 70 | +1. 自动将旧记录移动到 `docs/changelog-archive/` | ||
| 71 | +2. 主文件只保留最近 20 条记录 | ||
| 72 | +3. 归档文件以日期命名:`CHANGELOG-archive-YYYYMMDD.md` | ||
| 73 | + | ||
| 74 | +## 📝 最佳实践 | ||
| 75 | + | ||
| 76 | +1. **每次提交后检查**:运行 `pnpm changelog:check` 确保没有漏记 | ||
| 77 | +2. **及时记录**:在提交代码时同步更新 CHANGELOG | ||
| 78 | +3. **定期归档**:每月运行一次归档脚本 |
scripts/doc-parser/README.md
0 → 100644
| 1 | +# 文档解析工具 | ||
| 2 | + | ||
| 3 | +从 PDF、DOCX 等文档中智能提取配置字段,自动生成计划书模板配置。 | ||
| 4 | + | ||
| 5 | +## 📁 文件说明 | ||
| 6 | + | ||
| 7 | +| 文件 | 说明 | 使用频率 | | ||
| 8 | +|------|------|---------| | ||
| 9 | +| `parse-docs.js` | 主脚本 - 文档解析和配置生成 | ⭐⭐⭐ 高频 | | ||
| 10 | +| `smart-field-extractor.js` | 智能字段提取器 - 从文档中提取表单字段 | ⭐⭐ 中频 | | ||
| 11 | +| `product-splitter.js` | 产品分割器 - 识别和分割多产品文档 | ⭐⭐ 中频 | | ||
| 12 | +| `parse-config.js` | 配置文件 - markitdown 和 AI 服务配置 | 📋 配置 | | ||
| 13 | +| `parse-docs.test.js` | 测试文件 - 单元测试 | 🧪 测试 | | ||
| 14 | +| `QUICKSTART.md` | 快速开始指南 | 📖 文档 | | ||
| 15 | + | ||
| 16 | +## 🚀 使用方式 | ||
| 17 | + | ||
| 18 | +```bash | ||
| 19 | +# 解析所有待处理文档 | ||
| 20 | +pnpm parse:docs | ||
| 21 | + | ||
| 22 | +# 查看待处理文档列表 | ||
| 23 | +pnpm parse:docs:list | ||
| 24 | + | ||
| 25 | +# 查看解析状态 | ||
| 26 | +pnpm parse:docs:status | ||
| 27 | + | ||
| 28 | +# 解析指定文件 | ||
| 29 | +pnpm parse:docs -- --file=产品说明书.pdf | ||
| 30 | + | ||
| 31 | +# 应用审核通过的配置 | ||
| 32 | +pnpm parse:docs -- --apply=计划书模版4 | ||
| 33 | + | ||
| 34 | +# 预览应用配置(不实际修改) | ||
| 35 | +pnpm parse:docs -- --apply=计划书模版4 --dry-run | ||
| 36 | +``` | ||
| 37 | + | ||
| 38 | +## 📖 详细文档 | ||
| 39 | + | ||
| 40 | +参见 [QUICKSTART.md](./QUICKSTART.md) 了解完整的快速开始指南。 | ||
| 41 | + | ||
| 42 | +## 🔧 工作原理 | ||
| 43 | + | ||
| 44 | +1. 扫描 `docs/to-parse/` 目录下的待处理文档 | ||
| 45 | +2. 使用 markitdown 将文档转换为 Markdown | ||
| 46 | +3. 调用 AI 服务提取配置字段 | ||
| 47 | +4. 生成可审核的配置文件 | ||
| 48 | +5. 审核通过后应用到 `src/config/plan-templates.js` | ||
| 49 | + | ||
| 50 | +## 📝 支持的文档格式 | ||
| 51 | + | ||
| 52 | +- PDF (`.pdf`) | ||
| 53 | +- Word (`.doc`, `.docx`) | ||
| 54 | +- 文本 (`.txt`, `.md`) | ||
| 55 | + | ||
| 56 | +## 🤖 AI 配置 | ||
| 57 | + | ||
| 58 | +在 `.env` 文件中配置 AI 服务: | ||
| 59 | + | ||
| 60 | +```env | ||
| 61 | +# markitdown 服务 URL(可选) | ||
| 62 | +MARKITDOWN_URL=http://localhost:8000/convert | ||
| 63 | + | ||
| 64 | +# AI 服务配置(用于智能字段提取) | ||
| 65 | +AI_SERVICE_URL=your_ai_service_url | ||
| 66 | +AI_API_KEY=your_api_key | ||
| 67 | +``` | ||
| 68 | + | ||
| 69 | +## 📋 输出示例 | ||
| 70 | + | ||
| 71 | +解析后会生成: | ||
| 72 | +- `docs/parsed/产品名称.json` - 解析结果 | ||
| 73 | +- `docs/parsed/产品名称.audit.md` - 审核报告 |
scripts/整理报告.md
0 → 100644
| 1 | +# Scripts 目录整理报告 | ||
| 2 | + | ||
| 3 | +> 整理日期: 2026-02-15 | ||
| 4 | + | ||
| 5 | +## ✅ 整理完成 | ||
| 6 | + | ||
| 7 | +### 新目录结构 | ||
| 8 | + | ||
| 9 | +``` | ||
| 10 | +scripts/ | ||
| 11 | +├── README.md # 主说明文档 | ||
| 12 | +├── CLAUDE.md # Claude Code 指南(待处理) | ||
| 13 | +│ | ||
| 14 | +├── api-generator/ # API 代码生成工具 | ||
| 15 | +│ ├── README.md # 使用说明 | ||
| 16 | +│ ├── GUIDE.md # 详细指南 | ||
| 17 | +│ ├── generateApiFromOpenAPI.js # 主脚本 ⭐ | ||
| 18 | +│ ├── apiDiff.js # API 对比工具 | ||
| 19 | +│ └── test-generate.js # 测试脚本 | ||
| 20 | +│ | ||
| 21 | +├── doc-parser/ # 文档解析工具 | ||
| 22 | +│ ├── README.md # 使用说明 | ||
| 23 | +│ ├── QUICKSTART.md # 快速开始 | ||
| 24 | +│ ├── .env.example # 环境变量示例 | ||
| 25 | +│ ├── parse-docs.js # 主脚本 ⭐ | ||
| 26 | +│ ├── parse-config.js # 配置文件 | ||
| 27 | +│ ├── smart-field-extractor.js # 字段提取器 | ||
| 28 | +│ ├── product-splitter.js # 产品分割器 | ||
| 29 | +│ └── parse-docs.test.js # 测试文件 | ||
| 30 | +│ | ||
| 31 | +└── changelog/ # CHANGELOG 管理工具 | ||
| 32 | + ├── README.md # 使用说明 | ||
| 33 | + ├── check-changelog.sh # 漏记检查 ⭐ | ||
| 34 | + └── archive-changelog.sh # 归档脚本 | ||
| 35 | +``` | ||
| 36 | + | ||
| 37 | +### npm scripts 已更新 | ||
| 38 | + | ||
| 39 | +| 命令 | 新路径 | | ||
| 40 | +|------|--------| | ||
| 41 | +| `pnpm api:generate` | `scripts/api-generator/generateApiFromOpenAPI.js` | | ||
| 42 | +| `pnpm parse:docs` | `scripts/doc-parser/parse-docs.js` | | ||
| 43 | +| `pnpm changelog:check` | `scripts/changelog/check-changelog.sh` | | ||
| 44 | + | ||
| 45 | +--- | ||
| 46 | + | ||
| 47 | +## ⚠️ 未使用文件列表 | ||
| 48 | + | ||
| 49 | +以下文件**没有在 package.json 或其他脚本中直接调用**,请判断是否需要保留: | ||
| 50 | + | ||
| 51 | +### 1. `scripts/changelog/archive-changelog.sh` | ||
| 52 | + | ||
| 53 | +**状态**: 🟡 未直接引用 | ||
| 54 | +**功能**: CHANGELOG 归档脚本,当记录超过 20 条时自动归档 | ||
| 55 | +**使用方式**: 手动运行 `./scripts/changelog/archive-changelog.sh` | ||
| 56 | +**建议**: | ||
| 57 | +- [ ] 保留 - 作为手动维护工具 | ||
| 58 | +- [ ] 删除 - 不再需要归档功能 | ||
| 59 | + | ||
| 60 | +--- | ||
| 61 | + | ||
| 62 | +### 2. `scripts/api-generator/test-generate.js` | ||
| 63 | + | ||
| 64 | +**状态**: 🟡 未直接引用 | ||
| 65 | +**功能**: 测试生成的 API 文件是否正确 | ||
| 66 | +**使用方式**: 手动运行 `node scripts/api-generator/test-generate.js` | ||
| 67 | +**建议**: | ||
| 68 | +- [ ] 保留 - 作为开发调试工具 | ||
| 69 | +- [ ] 删除 - 已有其他测试方式 | ||
| 70 | + | ||
| 71 | +--- | ||
| 72 | + | ||
| 73 | +### 3. `scripts/CLAUDE.md` | ||
| 74 | + | ||
| 75 | +**状态**: 🟡 需要评估 | ||
| 76 | +**功能**: 给 Claude Code 的说明文档 | ||
| 77 | +**位置**: 当前在 scripts 根目录 | ||
| 78 | +**建议**: | ||
| 79 | +- [ ] 保留在当前位置 - 作为 Claude 指南 | ||
| 80 | +- [ ] 移动到 doc-parser 目录 - 因为主要与文档解析相关 | ||
| 81 | +- [ ] 删除 - 内容已整合到其他文档 | ||
| 82 | + | ||
| 83 | +--- | ||
| 84 | + | ||
| 85 | +## 📝 整理后的改进 | ||
| 86 | + | ||
| 87 | +1. **✅ 功能分组清晰** - 按用途分为 3 个子目录 | ||
| 88 | +2. **✅ 每个子目录有 README** - 包含使用说明和文件介绍 | ||
| 89 | +3. **✅ 路径引用已更新** - package.json 已同步更新 | ||
| 90 | +4. **✅ 单个文件已收录** - 所有脚本都在对应的功能目录中 | ||
| 91 | + | ||
| 92 | +--- | ||
| 93 | + | ||
| 94 | +## 🔧 后续操作建议 | ||
| 95 | + | ||
| 96 | +1. **确认未使用文件** - 对上述 3 个文件做出保留/删除决定 | ||
| 97 | +2. **更新 CLAUDE.md** - 如果项目根目录的 CLAUDE.md 已包含相关内容,可以删除 scripts/CLAUDE.md | ||
| 98 | +3. **测试脚本** - 运行 `pnpm api:generate` 和 `pnpm parse:docs` 确保路径更新正确 |
-
Please register or login to post a comment