构建与发布

# 构建与发布

# 构建插件

在插件项目根目录执行:

pnpm run build

构建完成后,你会在项目根目录看到一个 .atmb 文件,这就是你的插件包。

my-plugin/
├── src/...
├── package.json
└── myplugins-hello-world.atmb    ← 构建产物

.atmb 文件是插件的唯一交付物。它包含了插件运行所需的一切——代码、资源、语言文件、元数据。

# 本地测试

.atmb 文件复制到秋之盒的 builtin-plugins/ 目录,然后刷新页面:

cp *.atmb /path/to/AutumnBoxRevive/packages/app/builtin-plugins/

如果使用 AutumnBoxReviveWorkingSpace,可以直接用 Makefile:

make plugins    # 构建所有插件并自动复制到 builtin-plugins/
make dev        # 启动开发服务器

# 发布插件

# 通过 CLI 发布到插件商店

autumnbox-sdk 内置 publish 命令,可将 .atmb 直接上传到插件商店:

npx autumnbox-sdk publish --file my-plugin.atmb --token <your-publish-token>

# 认证方式(优先级从高到低)

方式 示例
--token 参数 --token abcd1234
--token-file 参数 --token-file ~/.atmb-token
ATMB_TOKEN 环境变量 export ATMB_TOKEN=abcd1234

发布 Token 在开发者中心生成。

# 完整选项

autumnbox-sdk publish [options]

必选:
  --file, -f <path>        要上传的 .atmb 文件路径
  --token, -t <token>      发布 Token(或通过 --token-file / ATMB_TOKEN 提供)

可选:
  --token-file <path>      从文件读取 Token
  --endpoint <url>         覆盖 API 端点
                            (默认: https://api.atmb.top/api/v1/plugins/publish
                             或环境变量 $ATMB_PUBLISH_ENDPOINT)
  --changelog <text>       本次版本的更新说明
  --dry-run                仅打印信息,不上传
  --help, -h               显示帮助

# 退出码

退出码 含义
0 发布成功(新建或更新)
1 通用错误
2 插件 ID 已被其他开发者占用
3 该版本号已存在
4 认证失败(Token 无效或过期)

# 工作流程

构建 .atmb → autumnbox-sdk publish → 自动创建/更新插件记录

端点原子处理"创建"和"更新":新 pluginPackageName 创建插件记录,已有且属于你的 pluginPackageName 创建新版本,属于他人的 pluginPackageName 被拒绝。

# 示例

# 基本发布
npx autumnbox-sdk publish -f my-plugin.atmb -t mytoken123

# 带 changelog
npx autumnbox-sdk publish -f my-plugin.atmb -t mytoken123 --changelog "修复了文件管理器的排序问题"

# 从环境变量读取 Token
export ATMB_TOKEN=mytoken123
npx autumnbox-sdk publish -f my-plugin.atmb

# 从文件读取 Token
echo "mytoken123" > ~/.atmb-token
npx autumnbox-sdk publish -f my-plugin.atmb --token-file ~/.atmb-token

# 预览(不上传)
npx autumnbox-sdk publish -f my-plugin.atmb --dry-run

# 手动分发

.atmb 文件可以通过任何方式分发——网盘、GitHub Releases、聊天工具等。用户收到 .atmb 文件后,在秋之盒中通过插件管理器导入即可。

# 检查 .atmb 内容

.atmb 本质上是一个 ZIP 压缩包,可以用任何解压工具查看内容:

unzip -l my-plugin.atmb
  Length      Date    Time    Name
---------  ---------- -----   ----
     2048  2026-04-04 10:00   package.json
   524288  2026-04-04 10:00   index.js
      128  2026-04-04 10:00   resources/lang/zh-CN.json
      102  2026-04-04 10:00   resources/lang/en-US.json

# 版本管理

插件版本由 package.jsonversion 字段决定:

{
  "name": "@myplugins/hello-world",
  "version": "1.2.0"
}

发布新版本时,更新 version,重新 pnpm run build,上传新的 .atmb 即可。

# 常见问题

Q: 插件加载后白屏或报错

打开浏览器控制台(F12),查看错误信息。常见原因:

  • 导出名称不符合约定(*App*Card*Service
  • 组件运行时错误

Q: 如何更新已安装的插件?

重新导入新版本的 .atmb 文件,会自动覆盖旧版本。

Q: 插件在开发时正常,构建后不工作

检查是否有 import 路径问题。构建时 @autumnbox/sdk/* 会被重写为宿主模块,确保没有直接 import @autumnbox/core 等内部包。

最后更新: 4/8/2026, 2:35:44 AM