包条目
已安装的插件如何将 package.json 指向源条目和构建条目,以及 OpenClaw 解析它们的顺序。属于 插件入口点 参考的一部分。
包条目¶
已安装的插件将 package.json 中的 openclaw 字段同时指向源条目和构建条目:
{
"openclaw": {
"extensions": ["./src/index.ts"],
"runtimeExtensions": ["./dist/index.js"],
"setupEntry": "./src/setup-entry.ts",
"runtimeSetupEntry": "./dist/setup-entry.js"
}
}
extensions和setupEntry是源条目,用于工作区和 git 检出开发。runtimeExtensions和runtimeSetupEntry选择构建条目,而不是对应的源条目。- 如果存在
runtimeExtensions,其数组长度必须与extensions匹配(条目按位置配对)。runtimeSetupEntry要求存在setupEntry。 - 如果声明了
runtimeExtensions/runtimeSetupEntry产物但缺失,安装会失败,并且发现过程会报告该条目的打包错误;OpenClaw 不会静默回退到源。 - 如果没有显式运行时条目,通过
plugins.load.paths或全局根进行的包发现会首先查找dist/下匹配的 JavaScript 对应文件,然后查找 TypeScript 源条目旁边的文件。对于src/条目,它会同时检查扁平化的dist/输出和保留dist/src/的输出。在每个位置,.mts优先选择.mjs,.cts优先选择.cjs;.ts和.tsx依次尝试.js、.mjs,然后.cjs。安装、发现、设置、运行时加载和已发布包验证使用相同的候选顺序。 - 解析到宿主自身捆绑插件树内部的
plugins.load.paths条目会被发现为该捆绑插件,因此无论源旁边是否存在编译输出,它都会保留捆绑入口点和捆绑来源。选择捆绑插件自身的路径永远不会重新分类它。 - 包安装和受管理的已安装包发现要求 TypeScript 扩展和设置条目具有编译输出。缺少编译输出是打包错误,而不是回退到 TypeScript 的理由。
- 可信的本地/源开发路径在未声明运行时条目时可以使用 TypeScript。这些包括工作区插件、显式本地加载路径、未跟踪的本地插件目录以及链接的源检出。工作区发现会保留源条目,而不是推断构建对应文件。
- 所有条目路径都必须保持在插件包目录内。运行时条目和推断的构建 JS 对应文件不会使逃逸的
extensions或setupEntry源路径有效。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw