开发

本节页面面向参与 Hover 开发的贡献者——而不是想在自己项目中使用 Hover 的最终用户。如果你是来安装并试用 Hover 的,请前往快速开始

本节内容

  • Monorepo 结构 —— packages/* 总览、各包之间的依赖关系,以及 MCP / core / extension 的拆分。
  • 测试与验证 —— 单元、集成、端到端各层,以及发布关卡。
  • 发布 —— 推送 v* tag 如何触发 .github/workflows/publish.yml 发布 npm 包,以及 VS Code 扩展如何暂存与打包。

快速参考

# 克隆 + 安装(workspace 安装,无需逐包处理)
git clone https://github.com/Hyperyond/Hover.git
cd Hover
pnpm install

# 构建全部(新克隆时 postinstall 已自动处理)
pnpm build

# 对整个 workspace 做类型检查
pnpm typecheck

# 在每个含测试的包中运行单元测试
pnpm test

各个交付面

  • @hover-dev/mcp —— MCP 优先的编写引擎,发布到 npm。用 npm i -g @hover-dev/mcp && claude mcp add hover -- hover-mcp 把它添加到你的 agent。

  • @hover-dev/core —— 共享引擎。由 MCP 和扩展共同消费。

  • hover-devpackages/vscode-ext)—— 可选的审查驾驶舱。用以下命令构建并旁加载:

    pnpm --filter hover-dev package    # 构建 + 暂存引擎 + vsce 打包 → hover-dev-<v>.vsix
    

扩展以本地源码方式消费 @hover-dev/core——它的 stage-engine 步骤会对本地的 packages/core 执行 npm pack,然后平铺安装进暂存引擎。在扩展开发期间修改 core/src 需要执行一次 pnpm --filter @hover-dev/core build(或开一个 dev watch 终端),并重新打包才能生效;正因如此,@hover-dev/coremain 指向 dist/ 而非 src/——参见 Monorepo 结构 § dist 入口的包