ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何运行 Caveman 浏览器扩展的测试矩阵并构建商店上传包?

如何运行 Caveman 浏览器扩展的测试矩阵并构建商店上传包? 如何运行 Caveman 浏览器扩展的测试矩阵并构建商店上传包【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/cavemanCaveman 仓库里的浏览器扩展extension/扩展名 Caveman Mode — ChatGPT, Claude Gemini是一个 MV3 扩展在 ChatGPT、Claude、Gemini 网页上给你的出站消息前加上 caveman 指令让回复更紧凑它不发任何网络请求全部在浏览器本地运行。如果你要在本地改动扩展代码或准备商店上传物需要跑通它的测试矩阵纯 Node 单测 Playwright 浏览器旅程再用打包脚本生成 Chrome 和 Firefox 两个版本的商店 zip。下面按仓库文档给出的命令把这条路径完整走一遍。测试矩阵由哪几层组成扩展的测试矩阵定义在 package.json 的 scripts 里分四层后一层依赖前面的环境准备脚本命令覆盖范围testnode --test --test-force-exit test/*.test.mjs纯 directive 与 service-worker 测试directive.test.mjs、background.test.mjstest:browserplaywright test真实 Chromium 里的 content-script 与 popup 旅程发送拦截、popup 存储、per-site 开关、review 链接行为全部针对 harness.html 跑test:firefoxnode scripts/firefox-e2e.mjsFirefox 端到端内部会调用node scripts/build-extension-zip.mjs firefox打包后加载验证packagenpm run test:all node scripts/build-extension-zip.mjs node scripts/build-extension-zip.mjs firefox先跑齐testtest:browser即test:all再生成 Chrome 与 Firefox 两个商店 zipPlaywright 行为由 playwright.config.mjs 固定测试目录./test、只匹配*.spec.mjs即 content-script.spec.mjs 与 popup.spec.mjs、单 worker、headless、单测超时 10 秒。准备条件在仓库根目录执行依赖安装都在extension/目录内进行npm --prefix extension ci # 安装固定的 Playwright 工具链playwright/test 1.55.0 npm --prefix extension run setup:browser # 首次运行下载固定版本 Chromium第二条命令会下载浏览器二进制到系统缓存目录是test:browser和package的前置步骤只需执行一次。npm ci会重写extension/node_modules。逐层执行测试先跑纯单测不依赖浏览器npm --prefix extension test通过条件是 node test runner 输出全部用例通过失败时 directive.js / background.js 对应的断言会直接报出用例名。再跑 Chromium 旅程npm --prefix extension run test:browser这一层用真实浏览器打开 harness.html模拟在受支持站点上点击发送、切换 popup 开关等完整流程。文档说明扩展测试覆盖受支持站点且失败时不会真正提交内容所以本地跑不需要登录任何 AI 站点。两个旅程文件是 content-script.spec.mjscontent script 注入与发送拦截和 popup.spec.mjspopup 存储与控件。也可以用一条命令把前两层都跑掉npm --prefix extension run test:all构建商店上传包商店 zip 由scripts/build-extension-zip.mjs生成目标参数决定产物ver取自 package.json 的version字段当前为 1.2.0# Chrome 包默认目标 node extension/scripts/build-extension-zip.mjs # - dist/caveman-browser-ver.zip # Firefox 包 node extension/scripts/build-extension-zip.mjs firefox # - dist/caveman-browser-firefox-ver.zip一次跑完测试并产出两个商店包的完整入口是npm --prefix extension run package需要注意build-extension-zip.mjs同时被 package.json 和 scripts/firefox-e2e.mjs 引用但在当前仓库的extension/scripts/目录中只有firefox-e2e.mjs、render-store-assets.mjs、verify-extension-stage.mjs三个文件该 zip 构建脚本未包含在本仓库中npm run package会在 zip 构建这一步失败。测试矩阵部分npm run test:all可以独立执行不受此影响。打包时验证了什么zip 构建不是简单压缩目录。打包过程会把共享运行时文件icons/、src/、popup.*等平铺暂存到 stage 目录再用显式允许清单校验校验逻辑在 verify-extension-stage.mjs 中允许清单里的每个可发布文件必须齐全LICENSE、PRIVACY.md、manifest.json、popup.{html,js,css}、src/background.js、src/caveman.js、src/directive.js、src/indicator.css、字体与图标等共 16 项stage 目录中出现符号链接或清单之外的文件直接报错exact模式下文件集合必须与清单完全一致manifest_version必须为 3manifest、popup.html、popup.css里的每个本地引用href/src/url()都必须落在允许清单内且文件真实存在content script 注入的 CSS如src/indicator.css中的相对url()会被直接拒绝——因为注入样式表的相对路径相对的是宿主页面而非扩展永远加载不到扩展内资源Firefox 目标额外校验background.scripts形式的后台脚本引用Firefox MV3 不跑service_worker。该脚本也可以单独对任意目录做校验例如node extension/scripts/verify-extension-stage.mjs dist/stage成功时按源码输出形如verified 16 extension files for 1.2.0以实际manifest.version与清单为准。Firefox 上传包的特殊约束Firefox 模板 firefox/manifest.json 有意不写version字段版本由build-extension-zip.mjs firefox在打包时从共享源package.json与 Chrome manifest 版本一致性会被校验注入保证两个 manifest 不会漂移。因此不要直接加载extension/firefox/manifest.json——Firefox 会拒绝没有version字段的 manifest这是设计使然本地临时加载走 stage 产物node extension/scripts/build-extension-zip.mjs firefox生成dist/stage/版本已注入、通过 AMO lint与dist/caveman-browser-firefox-ver.zip然后在about:debugging#/runtime/this-firefox里选extension/dist/stage/manifest.json或直接安装 dist 下的 zip其他 Firefox 侧约束strict_min_version为 140.0AMO 披露字段要求的桌面最低版图标省略非标准的 32pxbrowser_specific_settings.gecko.id为 UUID 形式的 AMO add-on id发布后不可更改。改完代码后的完整核对路径一条可执行的核对链npm --prefix extension ci npm --prefix extension run setup:browser # 首次 npm --prefix extension run test:all # 纯单测 Chromium 旅程 node extension/scripts/build-extension-zip.mjs # Chrome 包脚本存在时 node extension/scripts/build-extension-zip.mjs firefox # Firefox 包脚本存在时 node extension/scripts/verify-extension-stage.mjs dist/stage # 单独复核 stage测试全绿 两个 zip 产物落到extension/dist/ stage 校验通过即为可上传状态上传 Chrome Web Store / addons.mozilla.org 本身属于仓库外的商店后台操作文档到此为止。如果受支持站点改版导致test:browser失败需要更新的位置是 caveman.js 中的SITES映射各站点 composer 与发送按钮选择器带 aria-label 回退改完重跑test:browser验证。【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表