用途:把一个已有的 Orderly 插件包添加、注册或启用到一个基于 Orderly SDK 的 DEX / 交易宿主应用中。
适用时机:用户想安装或注册插件;用户给出 Marketplace 插件 ID,或给出导出 registerXxxPlugin() 的本地路径 / workspace 包。
前提条件:宿主应用使用 @orderly.network/react-app(或等价封装)并包含 OrderlyAppProvider;插件包能正常构建,且按其模板声明 @orderly.network/plugin-core 及 peer 依赖;已安装 @orderly.network/react-app;本地开发时配置好 pnpm workspace;插件包已构建;已有插件 ID 或本地插件路径。
主要步骤:
- 定位 OrderlyAppProvider 的使用位置(最关键一步),可用 rg "OrderlyAppProvider" src/ --glob ".tsx" --glob ".ts" 搜索,找到后确认其 plugins 属性的当前状态。
- 若插件来自 Marketplace,先取元数据:npx orderly-devkit view <pluginId>(或 pnpm orderly-devkit view <pluginId>),该命令无需认证。返回包名(npmName)、版本、usagePrompt 与 readme 等。优先阅读并遵循 usagePrompt,其次 readme。
- 添加依赖,按仓库情况选择模式:pnpm workspace 用 "workspace:*",本地开发用 "file:../path-to-plugin",已发布 npm 用 "latest";改完清单后在工作区根目录执行 pnpm install。
- 导入注册函数,实际导出名与导入路径以 usagePrompt / readme 为准,CLI 模板导出名为 registerOrderlyPlugin,可从插件 package.json、构建声明或 orderly-devkit view 的 npmName 判断。
- 核心步骤:在 OrderlyAppProvider 的 plugins 数组中加入该注册调用,已有插件时用展开合并。
- 验证:对宿主做类型检查 / 构建,运行应用并访问插件拦截器影响的界面;可用 rg "registerOrderlyPlugin" src/ 确认已注册。
可选:若 Storybook 或内部应用也使用 OrderlyAppProvider,可加入相同的 plugins 条目做本地测试。
限制与排错:找不到 OrderlyAppProvider 时检查包版本或项目是否使用自定义 Provider;类型错误时确保插件包与宿主使用相同版本的 @orderly.network/plugin-core;插件未显示时检查拦截器配置。具体插件功能、收费与平台信息暂未提供。