gvt add — 为已有项目添加钩子检查
在已有项目中注册一个目录,自动检测其工具链并生成对应的钩子检查配置。
用法
bash
# 交互模式
cd your-project
gvt add
# 快捷模式
gvt add --dir frontend/my-app
# 指定前端框架(前端模块必选)
gvt add --dir frontend/my-app --framework vue3
gvt add --dir frontend/my-app --framework react
# 指定模块类型,跳过歧义选择
gvt add --dir backend --type backend
# 允许 Vue 内联样式
gvt add --dir frontend/portal --framework vue3 -s交互流程
$ cd existing-project
$ gvt add
→ 输入前端目录路径: frontend/my-app
→ 正在检测工具链...
✓ 类型: vue3 | 包管理器: pnpm
✓ 工具: ESLint, Prettier, TypeScript, Vite
→ 选择前端框架: Vue 3 / React(必选)
✓ 将注册检查项: line_count, lint, build, format, types
→ 确认添加? Yes
✓ 已更新 .gvt/hook/ 配置文件
✓ 已安装 .githooks/pre-commit 钩子参数
| 参数 | 简写 | 说明 |
|---|---|---|
--dir | -d | 目录路径(相对项目根目录) |
--type | -t | 模块类型:backend / frontend(跳过歧义选择) |
--framework | -f | 前端框架:vue3 / react(注册前端模块时必选) |
--allow-inline-styles | -s | 允许 Vue 内联样式 |
自动检测的检查项
根据检测结果自动生成检查项:line_count、lint、build、format、types、inline_styles。不强制使用 oxc 工具链。
Vue 3 与 React 的差异化检查
| 检查项 | Vue 3 | React |
|---|---|---|
inline_styles_block | ✓(无 oxlint 时启用) | ✗ |
vue-types | ✓(有 vue-tsc 时启用) | ✗ |
ts-types | ✓(有 typescript 时启用) | ✓ |
配置文件位置
注册后写入 .gvt/hook/modules/<name>.toml(或 .gvt/hook/frontend/<name>.toml / .gvt/hook/backend/<name>.toml)。文件名由路径推导:
.→ 项目名- 多层路径用
-连接,如frontend/my-app→frontend-my-app
自动生成规范文档
注册后自动为所有已启用模块生成开发规范文档(默认 CONVENTIONS.md),放在各模块自身目录下。修改 .gvt/hook/ 配置后,运行 gvt doc 一键重新生成所有模块文档(也可指定模块名只更新单个模块,名称来自 gvt ls)。详见 gvt doc 命令。
激活钩子
gvt add 自动激活 .githooks,每次 git commit 触发 gvt hook -t 检查。无需手动执行 scripts/install-hooks.sh。
适用场景
- 旧项目接入 GVT 代码检查
- 为第三方前端目录补充行数/lint/构建检查
- 在 monorepo 中按目录注册多个独立检查模块