机器人构建规范

ALemonX 发布机器人前会在隔离的 Git worktree 中执行构建。构建配置的目标是生成可以被工作台运行和发布的入口文件,而不是把所有源码强行打包成单个文件。

构建入口优先级

ALemonX 按以下顺序选择构建入口:

package.json 的 alemonjs.build
        ↓
package.json 的 scripts.bundle
        ↓
lvy build

推荐在 package.json 中明确声明一个 bundle 脚本:

{
  "scripts": {
    "bundle": "lvy build",
    "start": "node lib/index.js"
  },
  "alemonjs": {
    "build": "bundle"
  }
}

alemonjs.build 的值是 package.json 中已有的脚本名,工作台会使用项目自己的包管理器执行它。没有更高优先级入口时,标准项目回退到 lvy build

推荐产物

project/
├── src/                  # 源码
├── lib/                  # 构建后的机器人入口
├── package.json
└── alemon.config.yaml

构建后的入口必须能够由 Node.js 直接启动,并且不能依赖开发服务器或只存在于开发机的绝对路径。需要构建独立前端时,可以使用:

{
  "scripts": {
    "bundle": "yarn --cwd frontend build && lvy build"
  },
  "alemonjs": { "build": "bundle" }
}

嵌套前端目录必须位于项目根目录内,并且包含自己的 package.json

前端与图片组件

如果机器人包含 WebView 或 JSXP 图片组件,应分别声明前端构建和机器人构建入口。前端页面输出到声明的 web.root,并使用相对资源路径;图片组件应在构建阶段完成需要的资源处理。

发布前检查

npm run build
npm run start

确认构建没有写入项目外部目录,入口可以独立启动,依赖已记录在 package.json,并且 WebView 的 index.html 和资源都存在。

构建失败时,先查看任务报告和完整日志,再检查 Node.js、包管理器、构建脚本、入口路径和依赖版本。更多发布操作见运行与交付