尝试在不双清的前提下修复依赖错误(适用于大部分插件安装失败)

警告:这不是官方帖子,文中提到的方法也并不是官方给出的方法。

操作前请先备份koishi本体,操作发生的任何结果本人不负责。

文中给出的方法一目前还在测试中

在我们安装了不安全插件之后,可能会遇到无法安装任何插件,也无法卸载插件的情况。
例:
安装任何插件都是安装失败,删除也是,这是日志
此时koishi官方给出的解决方法是:双清。但是双清会损失全部数据,这对于一个配置好的bot来说无疑是灾难性的(所以记得定期备份),本文介绍两种办法来修复依赖错误。

方法一:重新安装全部npm包修复错误。

打开koishi文件夹(注意:不是koishi desktop文件夹),大致样子如下图


(你的文件可能比我的多或少,使用yarn的用户还会看到yarn.lock)
此时打开你的koishi,找到你安装的不安全插件的名称,复制,然后关闭koishi,打开当前目录中的package.json,会看到许多插件及其版本号
image
此处我假设jsonpath-plus是不安全插件,我需要将其所在的行删除
image
保存,回到koishi所在文件夹,删除package-lock.json,yarn.lock和node_modules整个文件夹,在当前文件夹打开控制台,输入

npm i

yarn install

等待安装完成后,控制台输入

npm start

yarn start

尝试启动koishi(此时koishi desktop可能无法启动koishi,原因本人暂不清楚)

方法二:手动复制文件

后续补充

2 个赞

提问咪~

为什么不使用

 yarn remove koishi-plugin-jsonpath-plus 

是remove不掉吗?

2 个赞

其实应该是 安装的某个插件删库, 在npm没有这个包,会导致koishi无法自行 安装/卸载 插件

安装 不安全插件 往往会导致 koishi 直接炸掉,启动不了

2 个赞

我没有尝试过在控制台remove,但是koishi里面此时是没法删除依赖的

2 个赞

不是在koishi的控制台呀,是终端啊

1 个赞

启动不了的话我能想到的就是去找刚刚安装的依赖

2 个赞

没有试过,下次我试试,这个也是我前两天依赖炸了之后群友提示才发现的

2 个赞

这个也得看情况的,但是双清可以解决任何问题

2 个赞

如果有重要数据的话双清损失就比较大了,我本身准备写的方法二就是保留数据库和插件配置文件双清

2 个赞

那为什么不备份data文件夹呢

其他的插件都可以再装啊


写 koishi desktop 的方法吧

项目模板的话,这些都是基操了

1 个赞

这篇分享不错

3 个赞

在 koishi desktop 下,如何卸载坏坏插件

在一些时候,我们会遇到某些插件删库,npm包找不到的情况

具体表现为【版本获取失败】


在这种情况下, 再想 安装/更新 插件,日志就会有对应的报错

对于这种情况,我们需要移除掉这个坏掉的插件

例如上图就是需要卸载掉 @shangxueink/koishi-plugin-aaa 这个包


解决方法如下:

  1. 运行koishi desktop

  2. 打开终端

image

3. 输入命令

koi yarn -n [实例名称] remove [你想卸载的插件包名]

指令说明(重要!)

  • 这里的 [实例名称] 是指你的 koishi desktop 下的实例文件夹的名称,具体有哪些呢,你可以在koishi图标这里看到

image

比如我就有两个实例,分别是 defaultdefault2,但我是 default2 实例下依赖有问题,所以使用的是 default2

在默认情况下,你需要使用的是 default

  • 这里的 [你想卸载的插件包名] 是指插件的npm包名,而不是任何缩略名/别名

比如这里我的要卸载的包名就是 @shangxueink/koishi-plugin-aaa


所以我就需要输入的就是

koi yarn -n default2 remove  @shangxueink/koishi-plugin-aaa

然后回车运行。

运行完成了咪

然后就可以 重启 koishi 查看是否依赖正常啦~

不出意外的话,这个插件就被移除掉了咪

4 个赞

这篇分享也不错

3 个赞

koi yarn -n shangxue remote @brain

2 个赞