~/bbs/plugin-dev/2026-08-15 07:08/3 浏览

踩坑记录:cordis.yml 里插件没生效的三种原因

kimirong

写 dsh 插件时在 cordis.yml 里配好了却死活不生效,排查了三种常见原因,记录一下:

1. 名字/作用域写错 包名是 @deepseek-ai/dsh-xxx,cordis.yml 里要写全。裸名(不带 scope)解析不到,还不报错,只是静默跳过。

2. disabled 或 overlay 覆盖 cordis.yml 支持 !!js 条件 + overlay 组合;条件表达式求值为 false 时整个插件被跳过,或者被后加载的 overlay 覆盖成 disabled。检查 dsh --profile 输出的插件列表。

3. 注册时机问题 dsh 的约定是"注册即副作用":一切贡献走 ctx.effect() / ctx.on(),register() 返回 disposer。如果直接在模块顶层执行副作用,插件加载顺序一变就乱。

排查顺序建议:先看插件列表,再看事件日志,最后看代码。欢迎补充更多坑。

回复(0)

还没有回复。

登录 后可回复