尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

别再为缩进吵架:Cline 编码规范与团队协作完全指南

别再为缩进吵架:Cline 编码规范与团队协作完全指南 别再为缩进吵架Cline 编码规范与团队协作完全指南【免费下载链接】clineAutonomous coding agent as an SDK, IDE extension, or CLI assistant.项目地址: https://gitcode.com/GitHub_Trending/cl/clineCline 是一个可以跑成 SDK、VS Code 扩展或 CLI 的自主编码智能体。刚 clone 仓库想提第一个 PR这篇文章带你走一遍规范配置 → 质量关卡 → 提交流程10 分钟搞清楚代码长什么样、怎么校验、怎么提交才不会被 CI 打回来。为什么先统一规范两个必踩的坑这个仓库是 Bun monorepo一个人维护sdk/、五六个 app 各写各的风格两周后就是你改的缩进撞上别人改的换行merge conflict 一片或者更常见的——CI 反复打回每次只多报一个 lint error来回三五轮 PR 就凉了。统一编码规范的本质就是把这两类摩擦消灭在本地。Cline 的工具栈很收敛Biome负责格式化与 linthusky lint-staged gitleaks守提交Playwright Vitest做测试buf管 proto 文件全程用 Bun 1.3.13 跑别用 npm。biome.json 四块核心配置根目录 biome.json 是总控子包sdk/biome.json 等各自细化。分四块看1. 格式规则formatter: { enabled: true, indentStyle: tab }子包 override 里还有几条天天用到的indentWidth: 4Tab 按 4 格显示、lineWidth: 130比常见的 80 宽得多长行不用手动折、lineEnding: lf。JS 侧semicolons: asNeeded——该不该写分号 Biome 说了算别手猜trailingCommas: all尾逗号必须带。2. Lint 规则sdk/biome.json开了recommended: true真正咬人的只有两条noUnusedImports: error noRestrictedImports: { level: error, options: { patterns: [...] } }第二条是跨包导入守卫不许import别的cline/*包的内部文件必须走包入口。其余大量规则noExplicitAny、noNonNullAssertion等被降成info只是提示不挡你。3. 文件包含与排除vcs: { enabled: true, useIgnoreFile: true, defaultBranch: main }, files: { ignoreUnknown: true }Biome 跟随.gitignore跳过产物目录npm 脚本里lint/format又把范围显式收在sdk/、apps/cli/、apps/cline-hub/、apps/examples/内别指望全仓一把梭。4. overrides 差异化根配置的 overrides 只针对apps/vscode/**存量最大的 webview 代码把useHookAtTopLevel、noInnerDeclarations等一批规则放宽成off/info同时强制assist里的organizeImports。也就是说sdk/和apps/cli/规则更严vscode 子应用更松。从 clone 到 PR 合并的最短路径① 环境一键搭建仓库需 git-lfsgit clone https://gitcode.com/GitHub_Trending/cl/cline code cline然后装依赖、构建 SDKcd apps/vscode bun run install:all cd ../.. cd sdk bun run build cd ..② 编码时 IDE 实时校验。.vscode/settings.json已把 Biome 设为默认 formatterprettier.enable: false保存时自动fixAll organizeImports。装推荐扩展biomejs.biome、oven.bun-vscode后红线和自动修就都有。③ commit 时 pre-commit 钩子拦什么.husky/pre-commit 就两件事gitleaks git --pre-commit --staged # 密钥扫描没装 gitleaks 直接拒绝提交 cd apps/vscode bunx lint-staged # 改动文件跑 bun run types biome check即提交前强制类型检查 格式化/lint带密钥的 diff 进不了库。④ CI 门禁。PR 触发两条 workflowsdk-test依次跑build:sdk→ typecheck →bun run lint→ Vitest 测试矩阵ext-vscode-test先按路径变更检测再跑质量检查和 Playwright e2e。本地预演就一条bun run check # biome check 构建 全量 typecheck补一句改过 SDK 源码后记得bun run build:sdk否则 CLI 打包进的是旧 dist。⑤ PR 还差什么。提交信息走 Conventional Commitsfeat:/fix:/docs:。仓库虽用.changeset/目录管理版本但按 CONTRIBUTING.md 约定贡献者不用写 changeset版本号由维护者发版时处理。提交前 rebase 到最新 mainPR 描述写清改动和验证方式UI 变更附截图。多语言与特殊目录的差异化规则语言/栈lint 工具配置文件位置TypeScript / JS主体Biome 2.4.5biome.json、sdk/biome.jsonProtocol BuffersbufSTANDARD 规则集apps/vscode/buf.yamlRustTauri 桌面示例cargo 默认 fmt/clippyapps/examples/desktop-app/src-tauribuf.yaml 开了 STANDARD 但豁免了RPC_PASCAL_CASE等几条RPC 实际是 camelCaseproto 改动后用bun run protos重新生成。目录层面只有apps/vscode/**享受 overrides 放宽测试文件不享受任何特殊待遇和源码同一套规则。✅ 贡献者速查 checklist读一遍 CONTRIBUTING.md装好 Bun 1.3.13 与 gitleaks克隆仓库需 git-lfsgit clone https://gitcode.com/GitHub_Trending/cl/cline装依赖并构建cd apps/vscode bun run install:all本地过一遍门禁bun run check跑测试bun run testConventional Commitgit commit -m fix: xxxrebase 后推送开 PRgit rebase origin/main git push高频疑问❓Biome 能和本地的 ESLint / Prettier 共存吗不能。仓库完全迁移到 BiomeVS Code 配置里 Prettier 是显式关闭的。别在本地开别的 formatter否则保存时的自动重排会和 pre-commit 的biome check打架。真有 Biome 覆盖不到的场景往 biome.json 加 override 例外即可。❓测试文件要遵守同样的格式规则吗要。overrides 只按目录区分放宽的是apps/vscode/**不按是不是测试文件区分。照常用 Biome 格式化CI 的 lint 范围覆盖全部测试代码。❓本地明明能跑为什么 commit 还是失败九成是两道钩子之一没装 gitleaks 直接报错退出或 lint-staged 触发的bun run types类型检查挂了。提交前手动跑bun run types bun biome check .就能提前看到原因。把 CONTRIBUTING.md 和 biome.json 各扫一眼你的第一个 PR 就能一次过 CI。【免费下载链接】clineAutonomous coding agent as an SDK, IDE extension, or CLI assistant.项目地址: https://gitcode.com/GitHub_Trending/cl/cline创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表