r6s - 查 R6 战绩及服务器状态

  1. 依赖 node-canvas 会使插件进入不安全状态,建议使用 puppeteer 进行 canvas 绘图,这将获得原生 V8 引擎加持的完整 canvas,详阅:puppeteer.koishi.chat

    • puppeteer 中使用 canvas 可以阅读其官方文档
  2. 可以通过 downloads 分发≥ 10M 的资源,详阅:downloads.koishi.chat

2 个赞

原来 downloads 是有文档的

1 个赞

目前 canvas 用的是一个 rust 绑定的库 GitHub - Brooooooklyn/canvas: High performance skia binding to Node.js. Zero system dependencies and pure npm packages without any postinstall scripts nor node-gyp.
大小能控制在 30MB 左右,且能支持所有平台,包括安卓
未来如果我打算发布更多类似插件依赖都共享的,应该影响不大。
而且 canvas 能将生成耗时压到 10ms 以下,这是 puppetter 做不到的,并且并不是每个 koishi 用户都安装了 puppeteer。所以目前除了 不安全 比较显眼外,没有动力去动现有代码,我也没有 puppeteer 的使用经验

2 个赞

还有谁把我举办了 :smiling_face_with_tear:

2 个赞

谁把你举办了


看了一下你发表的内容都是正常显示的,没有人举办你啊。

1 个赞

安装了不安全插件的用户将无法再安装、更新或卸载任何插件,只能通过双清重装解决,因此没有任何用户会安装不安全插件(除非对某个插件特别有需求的用户,如果能够自行解决上述问题的话则没有关系)。


如果你不了解「不安全」插件的话,可以查看以下帖子:

1 个赞

噢居然不是 node-canvas。如果确定兼容性没有问题,那你的插件可能是被 node-canvas 检测误伤了,这个需要梦梦评估一下,cc @shigma

2 个赞

之前消息无了,然后又说管理员恢复了

2 个赞

至少我机顶盒刷成armbian都能跑,这种阴间环境都能用应该不会有什么兼容性问题了吧,而且自带字体不使用系统自带

2 个赞

不安全插件就是不安全,和兼容性有什么关系?


是的,他没有兼容性问题,但这和不安全插件有什么关系吗?


再次重复,不安全插件本身就是不安全的,并不是因为兼容性问题。

如果你不了解「不安全」插件的话,可以查看以下帖子:

1 个赞

是我表达有误了,并且发现确实依旧是不安全的方式
1}M_6ZZM4YJ6K0}1Y96

3 个赞

image

2 个赞

不安全插件大部分不都是自动检测的吗,我觉得他想表达的意思就是检测过程会检查有没有 node-canvas 作为依赖性结果误伤了,因为 node-canvas 确实会造成兼容性问题,反应没必要那么激烈

2 个赞

我对 ta 反应比较激烈是有其他的原因,跟本帖的关系不大了。

1 个赞

不过如果使用不安全插件就无法再安装、更新或卸载任何插件,是不是有点逆天了,起码有50个人采用了吧,不如问问不安全的原因 @shigma

2 个赞

:anger:那说说是什么原因!

3 个赞

r6s 在安装后存在 .node 文件,加载这些文件会导致用户安装后无法再安装、更新或卸载任何插件,因此被标记为不安全。

不是因为不安全所以无法安装,是因为无法安装所以不安全。除此以外还有其他不安全的原因。

3 个赞

不要以为只有 node-canvas 会导致无法安装插件,任何带有 .node 文件的依赖都会这样,比如下面的 @napi-rs/canvas-darwin-x64

为什么会导致无法安装插件?

可以参考下面的文章:

如何解决我的问题?

有两种方案:

1. 不使用含有此类依赖的包

最简单的做法就是依赖 koishi-plugin-puppeteer,它直接提供了不弱于任何同类 canvas 包的 canvas 渲染能力。

2. 仍然使用 .node 但不存放于 node_modules 目录

比如依赖 koishi-plugin-downloads,将这些会占用的文件直接下载到其他地方去。

5 个赞

今天想了一下,你说得对,确实是我言辞过激了。在这里对两位道歉。

1 个赞

我不知道谁举办的,但我确实收到了举办。我没管(

2 个赞