开发环境
本文档将帮助你设置开发环境,并了解如何与代码库一起工作。无论你是修复错误、添加功能,还是仅仅探索代码,本指南都将帮助你入门。
先决条件
在开始之前,请确保已安装以下内容:
- Git - 用于版本控制
- Node.js(建议使用 v20.18.1 或更高版本)和 npm
- Visual Studio Code - 我们推荐的开发 IDE
入门
安装
-
Fork 并克隆仓库:
- Fork 仓库:
- 访问 Kilo Code GitHub 仓库
- 点击右上角的 "Fork" 按钮,创建你自己的副本。
- 克隆你的 Fork:
将
git clone https://github.com/[YOUR-USERNAME]/kilocode.git
cd kilocode[YOUR-USERNAME]
替换为你的 GitHub 用户名。
- Fork 仓库:
-
安装依赖项:
npm run install:all
此命令将为主扩展、Webview UI 和 e2e 测试安装依赖项。
-
安装 VSCode 扩展:
- 必需:ESBuild Problem Matchers - 帮助正确显示构建错误。
虽然不是运行扩展所必需的,但以下扩展建议用于开发:
- ESLint - 将 ESLint 集成到 VS Code 中。
- Prettier - Code formatter - 将 Prettier 集成到 VS Code 中。
推荐的扩展完整列表在这里
项目结构
项目组织为以下几个关键目录:
src/
- 核心扩展代码core/
- 核心功能和工具services/
- 服务实现
webview-ui/
- 前端 UI 代码e2e/
- 端到端测试scripts/
- 实用脚本assets/
- 静态资源,如图片和图标
开发工作流
构建扩展
要构建扩展:
npm run build
这将:
- 构建 Webview UI
- 编译 TypeScript
- 打包扩展
- 在
bin/
目录下创建.vsix
文件
运行扩展
要在开发模式下运行扩展:
- 在 VSCode 中按
F5
(或选择 Run → Start Debugging) - 这将打开一个新的 VSCode 窗口,并加载 Kilo Code
热重载
- Webview UI 变更:Webview UI 的变更会立即生效,无需重启
- 核心扩展变更:核心扩展代码的变更会自动重新加载扩展主机
在开发模式下(NODE_ENV="development"),更改核心代码将触发 workbench.action.reloadWindow
命令,因此不再需要手动启动/停止调试器和任务。
重要提示:在生产构建中,更改核心扩展代码时,你需要:
- 停止调试过程
- 终止任何在后台运行的 npm 任务(见下图)
- 重新开始调试
安装构建的扩展
要安装你构建的扩展:
code --install-extension "$(ls -1v bin/kilo-code-*.vsix | tail -n1)"
将 [version]
替换为当前版本号。
测试
Kilo Code 使用多种测试来确保质量:
单元测试
运行单元测试:
npm test
这将运行扩展和 Webview 测试。
要运行特定测试套件:
npm run test:extension # 仅运行扩展测试
npm run test:webview # 仅运行 Webview 测试
端到端测试
E2E 测试验证扩展在 VSCode 中是否正确工作:
-
在根目录下创建
.env.local
文件,包含所需的 API 密钥:OPENROUTER_API_KEY=sk-or-v1-...
-
运行集成测试:
npm run test:integration
有关 E2E 测试的更多详细信息,请参阅 e2e/VSCODE_INTEGRATION_TESTS.md。
代码检查和类型检查
确保你的代码符合我们的质量标准:
npm run lint # 运行 ESLint
npm run check-types # 运行 TypeScript 类型检查
Git 钩子
该项目使用 Husky 来管理 Git 钩子,这些钩子会在提交和推送之前自动执行某些检查。钩子位于 .husky/
目录中。
预提交钩子
在提交完成之前,.husky/pre-commit
钩子会运行:
- 分支检查:防止直接提交到
main
分支。 - 类型生成:运行
npm run generate-types
。 - 类型文件检查:确保类型生成对
src/exports/roo-code.d.ts
的更改已暂存。 - 代码检查:运行
lint-staged
以检查和格式化暂存的文件。
预推送钩子
在将更改推送到远程仓库之前,.husky/pre-push
钩子会运行:
- 分支检查:防止直接推送到
main
分支。 - 编译:运行
npm run compile
以确保项目成功构建。 - 变更集检查:检查
.changeset/
中是否存在变更集文件,并提醒你使用npm run changeset
创建一个。
这些钩子有助于保持代码质量和一致性。如果遇到提交或推送问题,请检查这些钩子的输出以获取错误信息。
故障排除
常见问题
- 扩展未加载:检查 VSCode 开发者工具(Help > Toggle Developer Tools)中的错误
- Webview 未更新:尝试重新加载窗口(Developer: Reload Window)
- 构建错误:确保所有依赖项都已通过
npm run install:all
安装
调试技巧
- 在代码中使用
console.log()
语句进行调试 - 检查 VSCode 中的输出面板(View > Output)并从下拉菜单中选择 "Kilo Code"
- 对于 Webview 问题,请在 Webview 中使用浏览器开发者工具(右键点击 > "Inspect Element")