koishijs / koishi

Cross-platform chatbot framework made with love
https://koishi.chat
MIT License
4.5k stars 247 forks source link

Bug: 删除插件文件夹后重启 koishi 报错 #1021

Closed Ice-Hazymoon closed 1 year ago

Ice-Hazymoon commented 1 year ago

Describe the bug

我也不记得删除之前是否有禁用插件,现在报错:

2023-03-08 23:53:44 [W] market Error: Cannot find module 'koishi-plugin-user-middleware'
                        Require stack:
                        - E:\Project\bot\bot\node_modules\@koishijs\plugin-market\lib\node\index.js      
                        - E:\Project\bot\bot\node_modules\@koishijs\loader\lib\index.js
                        - E:\Project\bot\bot\node_modules\koishi\lib\worker\index.js
                            at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
                            at Function.Module._resolveFilename (E:\Project\bot\bot\node_modules\esbuild-register\dist\node.js:4787:36)
                            at Function.resolve (node:internal/modules/cjs/helpers:108:19)
                            at PackageProvider2.loadPackage (E:\Project\bot\bot\node_modules\@koishijs\plugin-market\src\node\packages.ts:95:26)
                            at PackageProvider2.loadDirectory (E:\Project\bot\bot\node_modules\@koishijs\plugin-market\src\node\packages.ts:85:16)
                            at async Promise.all (index 0)
                            at PackageProvider2.prepare (E:\Project\bot\bot\node_modules\@koishijs\plugin-market\src\node\packages.ts:53:5)

我全局搜索了这个插件名称没有任何发现,数据库里也没找到这个字段,我应该如何完整删除这个插件。

image image

Steps to reproduce

如题

Expected behavior

如题

Screenshots

No response

Versions

Additional context

No response

shigma commented 1 year ago

解决方案:yarn

请注意:对工作区进行任何变动后都需要重新 yarn

Ice-Hazymoon commented 1 year ago

感谢,已经解决,我认为应该优化一下这部分的错误输出,虽然我也不知道怎么优化,但应该不止我一个脑抽的没禁用插件直接删文件夹的。

shigma commented 1 year ago

此报错不会产生任何不良后果。我可以消除此报错,但是报错的意义就是提醒用户出了问题。消除此报错我不认为是好事。与 #1020 类似,我们可以通过社区来交流。在有更合理的方案之前我没有进一步的计划。

Ice-Hazymoon commented 1 year ago

我不是建议要消除此报错,而是在报错中提醒用户可能的原因,例如在出现此错误时检测 workspaces 的插件文件夹中是否包含此插件,如果不包含,提醒用户重建 node_modules。

当然,这只是一个建议,而不是要求,具体实现起来可能会很麻烦,或者无法实现,开发者依然可以通过社区来交流来查找该问题的解决方法。

shigma commented 1 year ago

出现此错误时检测 workspaces 的插件文件夹中是否包含此插件,如果不包含,提醒用户重建 node_modules

这是一种可行的方法。你可以另开一个 feature request,我会将其标记为 pr welcome 的。