快速修复Koishi依赖错误(不进行双清)

警告:操作之前务必备份,本方法不保证成功

我遇到的问题:


这显然是因为"koishi-plugin-smmcat-balogo"插件没有适配最新版Koishi导致的依赖错误,此时你无法删除koishi-plugin-smmcat-balogo插件,会报错“安装失败”,官方给出的方法似乎就是双清,这里给出另一种思路。

简述

打开package.json,删掉报错插件,然后重建依赖即可

详细说明

首先我们需要判断出哪个插件出现了错误。
以我的日志为例:
image
通过这里我们可以看到是“koishi-plugin-smmcat-balogo”发生了错误
(当然,更简单的方法是思考你刚刚修改了什么插件,如果修改这个插件后开始出现错误,那么大概率就是这个插件导致的)
你也可以查询你依赖里面哪些插件是“不兼容”的。
例如:

现在,我们知道错误出现在“koishi-plugin-smmcat-balogo”上,我们需要想办法删掉他。此时直接在插件市场里面删除是删不掉的(因为依赖已经崩了),我们需要在package.json里面删掉他。
首先,关闭Koishi,然后打开koishi所在的文件夹。注意!!! 是Koishi所在的文件夹,不是Koishi Desktop的文件夹,如果你是Koishi Desktop用户,你可以右键KD的托盘图标,选择“高级→数据文件夹”,如图:
image
然后打开\instances\default文件夹,如图:


这里就是Koishi本体所在的文件夹

接下来,我们要开始操作了。

警告:此时必须备份!因为没有备份导致的任何错误本人均不负责,操作失败还原备份即可

打开package.json(请使用正经的json编辑器,推荐安装VsCode,因为使用记事本编辑导致的任何错误本人不负责)
向下滚动,找到
image
此时每一行内容对应一个插件。以Koishi本体为例:
image
前面的代表插件名称,后面的代表版本号。此时我们找到出错的插件,将其所在的整行删掉即可。如果这个插件在最后一行,则需要删掉上一行插件最后的“,”以保证Json语法正确(如果你还是不明白,请询问你身边了解Json语法的人)

保存修改,然后回到Koishi所在文件夹,删除node_modules文件夹,然后在此位置打开控制台,输入npm i,等待依赖安装完成即可

看到“packages are looking for funding”这一行代表依赖重建完成,此时你可以继续玩耍你的机器人了~

2 个赞

为什么不是koi命令行呢…

2 个赞

im0

从第一张图就可以看出来你要么 Koishi Desktop 的安装有问题,要么本身不是 Koishi Desktop 启动的

使用官方 Koishi Desktop 方法启动的 Koishi,在 遇到这一整类依赖错误的情况下 ,都会 自动解决,正常安装,不会报错……

本贴大概可以作为「没有按照官方推荐方法使用,导致出现了奇奇怪怪的问题」的一个典例了

3 个赞

具体一点来说,这个报错本身是 npm 导致的,使用 Koishi 推荐的 yarn 不会出现此问题。

Koishi Desktop 强制使用 yarn。对于模板项目,Koishi 入门文档在安装完 Node 之后就给出了安装 yarn 的步骤,后续的所有命令也都是默认 yarn。

2 个赞

我确实不是kd启动的,是docker,这里额外提到kd只是避免一些使用kd的人看不懂我在说什么()

2 个赞

看起来我还是使用yarn启动比较好,非常感谢提醒

3 个赞

官方 Docker 镜像也是强制使用 Yarn 的,所以正如你所说:

一般情况下用 Yarn 启动可以避免这些奇奇怪怪的问题。

2 个赞

这个叫smm的作者她居然遇到这么严重的问题还不更新版本号,真丢人

已更新 pages.json 的内容为 koishi": "^4.18.0

2 个赞

可爱 smm

2 个赞