Closed Ice-Hazymoon closed 1 year ago
你配置了一个必选的选项,你没有填写这个选项,所以插件不能启动。
你需要卸载这个插件并且填写这个必选配置项。
Schema.string().required().default(xx)
,required 的优先级比 default 高吗,已经有 default了,还必须在 koishi.yml 中手动再配置一下吗
required 不能和 default 同时使用,否则必定报错。
果然,修改配置文件强制启动后 Schema 模块报错了,但是哪个字段出错 Schema 也没说。
你可以去给 schemastery 提个 issue,我可以加个冲突报错之类。
建议优化错误输出,控制台一直 app apply plugin chatgpt:ohvxr8
,没有任何错误提示,向我这样的菜鸡容易懵。
如果是 schemastery 部分出错,启动失败的话控制台应该打印个错误,告诉开发者哪个地方有问题。目前这样很难定位错误
理解你的困扰。但我们显然不能预判所有人可能遇到的所有错误写法,所以我们只能遇到一个解决一个。你的反馈是有意义的。
很遗憾,我刚刚研究了一下代码,发现 default + required 的用法在某些极端情况下是有意义的。现在有两种方案:
我花了几个小时尝试了各种方案,目前没有任何办法简单地修改现有源码,使之通过现有单元测试并且在你的情况下不报错。
附上 default + required 相关的测试用例:
相关尝试在分支:https://github.com/shigma/schemastery/tree/default-required
额外补充一点,在过去我们也同样遇到了类似的问题报告。并不是所有开发者遇到的问题都应该简单地归结为「我看不懂报错就一定是框架没有做好错误引导」,一方面我们有更多的开发者在阅读文档后根本不会遇到这样的问题,另一方面即使遇到了我们也有成熟的社区提供帮助。遇到一个此类问题就去寻求解决对于官方是一件费力不讨好的工程。昨天我花费了数个小时仍然无法解决,至少在这个问题上我认为我尽到了责任,但对于未来的问题我不一定还有这种耐心做类似的事情。
我认为可以在 koishi 的 schema 文档中对 required 和 default 加以说明(当然也可能是我没看到
感谢建议,已经加了: koishijs/docs@83a217580f3b88c3312b45dd14a78164ff5e4fc4
Describe the bug
dev 模式,在 web 控制台中添加的插件,添加后,点击启用按钮没有任何反应,重启 koishi 依旧无法点击启用按钮启用插件。
浏览器控制台输出:
koishi 终端输出(点了好几次)
插件代码:
koishi.yml
在 web 段修改配置并保存,可以正常更新 koishi.yml
package.json
devDependencies
其他:这是一个刚创建的 koishi 项目,改动很少
Steps to reproduce
如上
Expected behavior
如上
Screenshots
No response
Versions
Additional context
No response