从代码到上架:用web-ext打包Mediumship Firefox扩展并配置updates.json自动更新

📅 2026/8/27 15:30:16
从代码到上架:用web-ext打包Mediumship Firefox扩展并配置updates.json自动更新
从代码到上架用web-ext打包Mediumship Firefox扩展并配置updates.json自动更新【免费下载链接】mediumship:books: Read all Medium stories for free!项目地址: https://gitcode.com/gh_mirrors/me/mediumshipMediumship 是一款免费解锁 Medium 全部会员文章的 Firefox 浏览器扩展本文带你用 Mozilla 官方 web-ext 工具把源码打包成 .xpi 安装包再配置 updates.json 更新清单实现 Firefox 扩展的自动更新分发。认识 Mediumship免费读 Medium 文章的浏览器扩展Mediumship 的思路很巧妙firefox/background.js 中的后台脚本会在请求 Medium 站点时自动改写 HTTP 请求头让会员文章绕过付费墙——无需登录、无需付费安装后全程自动生效。使用前的效果免费额度用尽后文章被付费墙拦腰截断使用后的效果同一篇文章完整可读没有任何付费提示 该扩展同时支持 Firefox 桌面版与移动端属于安装即忘型扩展。准备工作安装 web-ext 并了解目录结构一条命令安装 web-extweb-ext 是 Mozilla 官方的扩展开发 CLI 工具基于 Node.jsnpm install --global web-ext如果还没有源码先克隆项目git clone https://gitcode.com/gh_mirrors/me/mediumshipMediumship 的 Firefox 版目录结构Firefox 版扩展全部位于firefox/目录核心文件如下firefox/ ├── manifest.json # 扩展清单名称、版本、更新地址 ├── background.js # 后台脚本改写请求头解锁文章 └── web-ext-artifacts/ # web-ext 打包产物目录 ├── addon-2.7.xpi # 当前 2.7 版本的安装包 └── updates.json # 自动更新版本清单用 web-ext 打包生成 .xpi 安装包在项目根目录执行web-ext build \ --source-dir firefox \ --artifacts-dir firefox/web-ext-artifacts \ --overwrite-dest执行成功后会生成addon-2.7.xpi文件名自动取自 manifest 中的版本号。这个 .xpi 就是用户从文件安装附加组件时选择的文件。⚠️ 每次发新版前先修改 firefox/manifest.json 中的version字段如 2.7 → 2.8再重新打包。配置 updates.json让 Firefox 扩展支持自动更新只有一个 .xpi 还不够让用户每次手动下载替换太麻烦。Firefox 支持通过更新清单自动检查并安装新版核心是两处配置。manifest.json 中声明 update_urlfirefox/manifest.json 的applications.gecko段负责声明扩展身份与更新地址applications: { gecko: { id: mediumshipswap, update_url: https://你的托管地址/firefox/web-ext-artifacts/updates.json } }id是扩展的全局唯一标识发布后不可更改否则老用户的更新会失效update_url指向 updates.json 的线上地址要求公网可访问。编写 updates.json 版本清单firefox/web-ext-artifacts/updates.json 记录了全部历史版本节选{ addons: { mediumshipswap: { updates: [ { version: 2.7, update_link: https://你的托管地址/firefox/web-ext-artifacts/addon-2.7.xpi } ] } } }外层addons下的键必须与 manifest 中的id完全一致updates数组按版本从低到高排列update_link指向对应版本 .xpi 的下载地址。发布新版本三步让老用户自动升级修改 firefox/manifest.json 中的版本号如2.8重新执行web-ext build生成addon-2.8.xpi把新 .xpi 与追加了新版本的 updates.json 一起部署到托管地址。部署完成后用户下次打开 Firefox 或手动检查更新时就会自动完成升级。 提示自签名自分发场景下务必保证update_url与update_link长期稳定可访问这是自动更新的前提。如何验证自动更新生效常见问题排查更新不生效时按下面三点依次排查update_url 是否可达浏览器直接访问 updates.json 地址应返回 JSON 而不是 404版本号是否递增updates.json 中最新version必须高于用户当前版本xpi 与清单是否匹配update_link指向的文件真实存在且其内部版本号与条目一致。验证成功后重新访问任意 Medium 文章扩展会在后台自动完成解锁整体效果演示如下总结从代码到上架的完整流程步骤操作产出物1修改 manifest.json 版本号新版本的扩展源码2执行 web-ext build 打包addon-x.x.xpi 安装包3追加 updates.json 新版本条目自动更新清单4部署到公网托管地址老用户自动升级掌握这套web-ext 打包 updates.json 更新清单的流程后你的 Firefox 扩展就具备了完整的自动更新分发能力。更多项目背景可查看 README.md。【免费下载链接】mediumship:books: Read all Medium stories for free!项目地址: https://gitcode.com/gh_mirrors/me/mediumship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考