记一次 OpenClaw 飞书插件接入填坑指南: Error: spawn EINVAL

在针对 OpenClaw (v2026.2.26) 进行本地化插件开发,尤其是加载较新的 @openclaw/feishu 插件时,你可能会遇到接连不断的坑。今天这篇博客,我将复盘一下我刚碰到的一个本地加载错误。

当我拉取了飞书插件(v2026.2.26)的代码到本地目录,并准备通过 npm install 安装依赖再调用 openclaw plugins install ./加载就报错了:

less 复制代码
text
[openclaw] Failed to start CLI: Error: spawn EINVAL
at ChildProcess.spawn (node:internal/child_process:421:11)
at spawn (node:child_process:796:9)
at runCommandWithTimeout (file:///C:/Users/Administrator/AppData/Local/nvm/v24.13.0/node_modules/openclaw/dist/exec-BhaMholX.js:196:16)

一开始查阅了这篇帖子,里面提到可能和执行引擎的环境有关,将错误提交给 AI 后, AI 建议修改相关执行代码,通过显式判断是否在使用 shell,来动态开关 windowsVerbatimArguments(保持参数原样传递)。关键修复代码如下:

php 复制代码
javascript
const useShell = shouldSpawnWithShell({
    resolvedCommand,
    platform: process.platform
});
const child = spawn(resolvedCommand, argv.slice(1), {
    stdio,
    cwd,
    env: resolvedEnv,
    // 关键修正:shell 模式下必须关闭 windowsVerbatimArguments
    windowsVerbatimArguments: useShell ? false : windowsVerbatimArguments, 
    shell: useShell,
});

🎁 尾声彩蛋:消除 Untracked Local Code 警告

当所有报错不再出现,系统启动后却弹出了一个橙色警告:

feishu: loaded without install/load-path provenance; treat as untracked local code and pin trust via plugins.allow...

这是一个安全机制:OpenClaw 检测到我们是本地强行读取的插件,由于缺乏官方来源保证,需要我们显式增加信任。解决方式非常简单:

在你的 OpenClaw 配置文件 "C:\Users\Administrator\.openclaw\openclaw.json"里(通常在全局技能节点或者根对象节点中),增加 plugins.allow 字段白名单:

json 复制代码
json
"plugins": {
    "allow": ["feishu"]
  }

保存配置然后重启 OpenClaw 服务,世界终于彻底清静了。

总结

Happy Coding!🚀

相关推荐
灵感__idea6 小时前
Hello 算法:贪心的世界
前端·javascript·算法
GreenTea8 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
killerbasd9 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
吴声子夜歌9 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈10 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
ZC跨境爬虫10 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝10 小时前
svg图片
前端·css·学习·html·css3
王夏奇10 小时前
python中的__all__ 具体用法
java·前端·python
大家的林语冰11 小时前
《前端周刊》尤大开源 Vite+ 全家桶,前端工业革命启动;尤大爆料 Void 云服务新产品,Vite 进军全栈开发;ECMA 源码映射规范......
前端·javascript·vue.js
jiayong2311 小时前
第 8 课:开始引入组合式函数
前端·javascript·学习