camofox-browser 版本同步机制:让 AI Agent 浏览器自动对齐 package.json 与 openclaw.plugin.json
2026/9/16 19:53:42 网站建设 项目流程

camofox-browser 版本同步机制:让 AI Agent 浏览器自动对齐 package.json 与 openclaw.plugin.json

【免费下载链接】camofox-browserStealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.项目地址: https://gitcode.com/GitHub_Trending/ca/camofox-browser

camofox-browser 是一款专为 AI Agent 打造的隐身无头浏览器(Stealth Headless Browser),可绕过 Cloudflare 反爬、机器人检测,是 Puppeteer / Playwright 的即插即用替代品。它同时以三种形态发布:npm 主包、OpenClaw 插件和独立 MCP 包。多形态发布最大的隐患就是版本号漂移——而项目用一套 50 行的同步机制,让 package.json 与 openclaw.plugin.json 等全部自动对齐,无需任何人工干预。

为什么版本必须"三处对齐"?

这个项目有4 个文件各自记录着版本号:

文件作用
package.jsonnpm 主包版本(唯一源头
openclaw.plugin.jsonOpenClaw 插件清单,插件市场据此识别版本
mcp/package.json独立发布的 MCP Server 包
mcp/package-lock.jsonMCP 包的锁定文件(含两处版本号)

任何一处版本落后,都会导致插件市场、MCP 客户端看到"旧版",用户难以察觉却难以复现问题。camofox-browser 的答案是:只允许改一个地方,其余全部自动跟随

核心机制:一个 50 行的同步脚本

全部逻辑集中在 scripts/sync-version.js,流程非常直观:

  1. 读取根目录 package.json 的version,作为唯一可信来源(Source of Truth);
  2. 对比 openclaw.plugin.json,不一致就覆写并打印openclaw.plugin.json version synced to x.y.z
  3. 同样对齐 mcp/package.json;
  4. 对齐 mcp/package-lock.json 的顶层versionpackages['']两处;若锁定文件缺少根包条目,直接报错终止,防止静默失败(sync-version.js#L40-L42)。

脚本对已对齐的文件只打印already at x.y.z幂等且无副作用,可以随时安全重跑。

自动触发:挂上 npm 的 version 生命周期钩子

手动执行固然方便(npm run version:sync),但真正聪明的是 package.json 里的version钩子(package.json#L134):

"version": "node scripts/sync-version.js && node scripts/generate-openapi.js && git add ..."

执行npm version patch / minor / major时,npm 会自动调用该钩子,一次性完成三件事:

  • ✅ 运行 scripts/sync-version.js 对齐三处版本;
  • ✅ 运行 scripts/generate-openapi.js 重新生成 openapi.json(其版本字段同样来自 package.json,见 lib/openapi.js#L22-L26);
  • git add所有被改动的文件,确保版本提交不会漏掉任何一份。

也就是说,开发者升级版本只需一条命令,同步是副作用而非额外步骤——这正是"防忘记"设计的精髓。

测试兜底:用真实子进程验证一致性

同步逻辑本身也有自动化测试守护:tests/unit/syncVersion.test.js 在临时目录构造一个"版本 9.8.7 的根包 + 三个 1.0.0 的旧文件"场景,真实执行sync-version.js,然后断言四处版本号全部变为 9.8.7(syncVersion.test.js#L19-L45)。

这种"在沙盒里跑一遍真实脚本"的测试方式,比 mock 更可靠,能防止脚本重构后悄悄失效。

手动使用:两条命令即可上手

  • 只想对齐版本npm run version:sync—— 随时可跑,幂等安全;
  • 正式发版npm version minor—— 自动完成 版本自增 → 三处同步 → 重新生成 OpenAPI → git add 全流程。

小结

camofox-browser 的版本同步机制值得多包项目借鉴:单一版本源头 + npm 生命周期钩子 + 幂等脚本 + 真实执行测试,四步组合拳让 package.json 与 openclaw.plugin.json、MCP 包之间的版本永远自动对齐。对于任何"一个仓库、多种发布形态"的项目,这套模式都可直接复制。

  • 同步脚本:scripts/sync-version.js
  • 测试用例:tests/unit/syncVersion.test.js
  • OpenAPI 生成:scripts/generate-openapi.js

【免费下载链接】camofox-browserStealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.项目地址: https://gitcode.com/GitHub_Trending/ca/camofox-browser

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询