在浏览器里直接把本地扩展打包成可侧载的 CRX3 安装包。全程本机完成,私钥不上传、不离开页面。
CryptoKey 形式存在页面内,不会发往任何服务器——刷新页面即失效。extensions/<id>/)。顶层目录名会自动剥掉。tools/keys/<id>.pem)可保持扩展 ID 不变,已安装用户才能覆盖升级;
首次上架可点「生成新密钥」。
store.json 商店元数据。PUBLISH_TOKEN 一致。令牌不对会返回 401。推荐用云端上传:打包后一步生效,无需搬文件、无需重新部署。
extensions/<id>/(含store.json 商店元数据),然后跑一条命令,
全自动完成打包、校验、入库、部署:
node tools/publish.js edgeone makers deploy _deploy -n privad产物由
publish.js 汇总成 dist/catalog.json,云端条目与之自动合并。
不要手改 catalog.json,它是构建产物。令牌由你在服务端配置,浏览器端只做比对。首次配置:
# 1) 生成一个随机令牌并保存好(只显示一次) node -e "console.log(require('crypto').randomBytes(16).toString('hex'))" # 2) 写入 EdgeOne Makers 项目环境变量(生产环境) edgeone makers env set PUBLISH_TOKEN <你的令牌> -e production # 3) 重新部署让云函数读到新环境变量 node tools/publish.js && edgeone makers deploy _deploy -n privad
然后把令牌粘到打包页第 5 步即可。未配置该环境变量时上传接口会自动禁用,不会「忘配=裸奔」。
env set 换一个。平台没有数据库,用对象存储的 key 前缀建模。
ext/<id>/<id>-<ver>.crx 安装包(云端直接下发二进制,不经转码) ext/<id>/<id>-<ver>.zip ext/<id>/<id>-update.xml 更新清单(codebase 由服务端改写为真实域名) meta/<id>.json 商店元数据:名称/分类/权限用途/更新历史
Cr24、容器版本是否为 3;DELETE /api/ext/<id>(同样需令牌),会连元数据与产物一并清理。CryptoKey 形式存在页面内存中,全程不发出任何网络请求;.pem 文件——私钥丢失则无法为该扩展发布更新;node tools/publish.js 后,用任意静态服务器打开 _deploy/package.html),避免在公共设备上处理私钥。