SuperAPI AI 工具集

expo-devtools-cli

智能体与模型

查看项目

更新于 10-15 21:39

技能介绍

用途:该资料介绍如何构建带 CLI 界面的 Expo DevTools 插件,使命令行工具能通过 DevTools 插件系统与运行中的 Expo 应用通信,供智能体或开发者调用。

架构与栈:CLI 客户端(Bun + Stricli)经 WebSocket 连接 Expo Dev Server(Metro),再连到 React Native 应用侧的 Hook。协议为 JSON over WebSocket。推荐运行时 Bun,CLI 框架 @stricli/core,应用侧使用 expo/devtools 的 useDevToolsPluginClient。

主要步骤:1) 在 expo-module.config.json 中配置 devtools 的 name 与 id;2) 用 useDevToolsPluginClient("my-plugin") 创建应用侧 Hook,监听 message 并回发 result 或 error;3) 编写 CLI 客户端,连接 ws://localhost:8081/expo-dev-plugins/broadcast,发送含 protocolVersion:1、pluginName、method:"handshake"、browserClientId、__isHandshakeMessages:true 的握手;4) 用 @stricli/core 定义路由与命令(如 status、query);5) 在 package.json 配置 bin 与 scripts。

关键限制与常见问题:消息必须以 JSON 字符串发送,不能用 ArrayBuffer;必须使用 broadcast 端点;握手字段不可缺;protocolVersion 必须为 1;插件名需在配置、Hook、CLI 三处完全一致;Hook 必须从 expo/devtools 导入;监听方法名需与 messageKey.method 匹配。

调试:可用 websocat 监听或发送测试握手,用 curl 验证 WebSocket 升级,查看应用控制台日志,或写最小 WebSocket 脚本独立测试连接。资料未提供具体收费、平台支持范围或性能数据。