treeskit 是一个命令行工具,用于自动生成和维护iOS项目结构文档。它提供了简单直观的命令行界面,帮助开发者轻松管理项目文档。
在使用 treeskit 之前,请确保您的系统已安装以下必需组件:
-
Node.js 和 npm
- Node.js >= 14.0.0
- npm >= 6.0.0
-
tree 命令行工具(必需)
# 在 macOS 上安装 brew install tree # 在 Linux 上安装 sudo apt-get install tree # Ubuntu/Debian sudo yum install tree # CentOS/RHEL # 验证安装 tree --version # 如果正确安装,会显示版本号
- macOS
- Linux
- Windows (需要额外配置)
treeskit 提供两种使用方式:
无需安装,直接通过 npx
运行:
# 使用 npx 直接运行命令
npx treeskit <命令>
# 例如:
npx treeskit init
npx treeskit generate
# 全局安装
npm install -g treeskit
# 安装后可以直接使用命令
treeskit <命令>
注意:如果遇到 "command not found: treeskit" 错误:
- 确保已正确全局安装:
npm install -g treeskit
- 检查 npm 全局路径是否在 PATH 中:
# 查看 npm 全局安装路径 npm config get prefix # 确保该路径在 PATH 环境变量中 echo $PATH
- 重新打开终端
- 或改用 npx 方式运行命令
# 初始化项目
treeskit init # 或 npx treeskit init
# 生成文档
treeskit generate [--output <path>] # 或 npx treeskit generate
# 配置管理
treeskit config # 或 npx treeskit config
# Git Hooks管理
treeskit hooks <enable|disable|status> # 或 npx treeskit hooks
-
init
- 初始化项目配置
- 创建默认的配置文件
- 设置Git hooks(可选)
交互式配置项:
- 项目名称(必填)
- Git Hooks启用状态(可选,默认:是)
示例:
$ npx treeskit init ? 请输入项目名称: MyApp ? 是否启用Git Hooks来自动更新文档? Yes ✓ 配置文件已创建 ✓ Git Hooks已配置
-
generate
- 生成项目结构文档
- 支持自定义输出路径
- 可选择是否包含文件大小和行数信息
选项:
-
-o, --output <path>
- 指定文档输出路径(默认:docs)
示例:
# 使用默认输出路径 $ npx treeskit generate # 指定输出路径 $ npx treeskit generate -o ./docs/structure
-
config
- 管理工具配置
- 设置忽略规则
- 配置文档格式
配置项:
- 项目名称:项目的显示名称
- 输出路径:文档生成位置(默认:docs)
- Git Hooks:是否启用自动更新(默认:true)
- 忽略路径:不包含在文档中的路径
-
hooks
- 管理Git Hooks功能
- 支持启用/禁用自动更新
- 查看当前状态
子命令:
-
enable
- 启用Git Hooks -
disable
- 禁用Git Hooks -
status
- 查看当前状态
示例:
# 启用Git Hooks $ npx treeskit hooks enable # 禁用Git Hooks $ npx treeskit hooks disable # 查看状态 $ npx treeskit hooks status
.projectstructure.json
配置文件结构:
{
"projectName": "项目名称",
"useGitHooks": true,
"outputPath": "docs",
"ignorePaths": [
"node_modules",
".git",
"build",
"DerivedData"
],
"format": {
"includeFileSize": true,
"includeLineCount": true,
"maxDepth": 3
}
}
- projectName: 项目名称,将显示在生成的文档中
- useGitHooks: 是否启用Git hooks自动更新功能
- outputPath: 文档输出路径
- ignorePaths: 需要忽略的文件或目录列表
-
format: 文档格式化选项
- includeFileSize: 是否包含文件大小信息
- includeLineCount: 是否包含文件行数信息
- maxDepth: 目录结构最大深度
treeskit使用原生Git hooks来实现文档的自动更新。当启用此功能时:
-
自动更新
- 在每次提交前自动更新文档
- 自动将更新后的文档添加到提交中
-
安全性
- 自动备份现有的pre-commit hook
- 在禁用功能时恢复原有hook
-
灵活控制
- 可随时启用/禁用功能
- 支持查看当前状态
- 通过配置或命令行管理
-
错误处理
- 优雅处理非Git仓库情况
- 处理权限问题
- 提供清晰的错误提示
-
ENOENT
: 文件或目录不存在 -
EACCES
: 权限不足 -
EINVAL
: 无效的参数
# 配置文件不存在
Error: 未找到配置文件,请先运行 npx treeskit init
# 输出目录无写入权限
Error: 无法写入文档,请检查目录权限
# tree命令未安装
Error: 未找到tree命令,请先安装
# Git相关错误
Error: 当前目录不是git仓库,请先初始化git
Error: Git Hooks配置失败,请检查权限
-
定期更新文档
- 推荐启用Git Hooks自动更新
- 在重要更改后手动运行generate命令
-
配置忽略路径
- 添加临时文件目录
- 添加构建产物目录
- 添加依赖目录
-
文档位置
- 建议将文档放在专门的文档目录
- 确保文档目录被版本控制追踪
-
Git Hooks管理
- 在项目初始化时决定是否启用
- 定期检查hooks状态
- 在团队中统一使用状态
-
生成文档失败:tree command not found
# 错误信息 /bin/sh: tree: Command not found 生成文档失败: Command failed: tree -L 3 -I "node_modules|.git|build|DerivedData" # 解决方案: # 1. 在 macOS 上安装 brew install tree # 2. 在 Linux 上安装 sudo apt-get install tree # Ubuntu/Debian sudo yum install tree # CentOS/RHEL # 3. 安装后验证 tree --version # 4. 验证成功后重新运行 treeskit generate
-
命令未找到 (command not found: treeskit)
# 解决方案 1:使用 npx 方式运行(推荐新手) npx treeskit <命令> # 解决方案 2:全局安装(推荐经常使用) npm install -g treeskit # 如果全局安装后仍然报错,请检查: # 1. 检查安装是否成功 npm list -g treeskit # 2. 检查 npm 全局路径 npm config get prefix # 3. 确认该路径在 PATH 中 echo $PATH # 4. 重启终端后重试
-
配置文件不存在
- 确保先运行
npx treeskit init
- 检查是否在正确的项目目录中
- 确保先运行
-
Git Hooks不生效
- 确保项目是Git仓库
- 检查是否存在其他 Git Hooks 管理工具(如 husky):
# 检查是否被其他工具接管 git config --get core.hooksPath # 如果输出不为空,说明被其他工具接管,需要: # 1. 要么卸载其他工具 # 2. 要么执行以下命令恢复原生 hooks: git config --unset core.hooksPath
- 检查
.git/hooks
目录权限 - 使用
treeskit hooks status
检查状态 - 尝试重新启用:
treeskit hooks enable
MIT
欢迎提交 Issue 和 Pull Request!
- 移除SDK相关功能,专注于CLI工具
- 优化命令行界面和用户体验
- 更新文档和配置选项
- 简化项目结构
- 添加Git Hooks管理命令