TimeRainStarSky / Yunzai

Yunzai 应用端,支持多账号,支持协议端:go-cqhttp、ComWeChat、GSUIDCore、ICQQ、QQBot、QQ频道、微信、KOOK、Telegram、Discord
GNU General Public License v3.0
369 stars 33 forks source link

反馈一个与Puppeteer版本和QQBot插件有冲突的问题 #122

Closed foxhui closed 3 months ago

foxhui commented 3 months ago

您好,在Puppeteer高版本时,与Yunzai-QQBot-Plugin一起时,会发不出图片(比如喵喵的帮助和原神插件的体力以及UID等),但是TRSS-Plugin的米哈游登陆的二维码图片以及纯文字正常发送,下面是日志和最终解决方案

系统为:CentOS Stream 8 NodeJS版本为:18.20.4LTS(亲测20.16.0LTS也会有这个情况) 喵喵插件和TRSS云崽以及QQBot插件都是截至2024.08.08从Git直接拉的最新

image 313eeb4d84f5a981f1bc457e5c4d2839

最终的解决方案是降您package.json中Puppeteer版本的*改为22.13.1解决问题 image 最终效果: e027f77e6e9d65458655ec06e2e53ad1

sdutwsl commented 3 months ago

同样的问题, 此错误会导致puppeteer不会正常返回base64编码的图片,即使修改代码指定了encoding同样不行,可以使用如下 pnpm-lock.yaml来安装依赖 pnpm-lock.yaml.txt

foxhui commented 3 months ago

同样的问题, 此错误会导致puppeteer不会正常返回base64编码的图片,即使修改代码指定了encoding同样不行,可以使用如下 pnpm-lock.yaml来安装依赖 pnpm-lock.yaml.txt

将package.json中的Puppeteer版本改为22.13.1,将.pnpm文件夹中的Puppeteer删除,然后重新执行pnpm i也可以解决,希望可以为Puppeteer添加版本限制,*会默认安装最新版

sdutwsl commented 3 months ago

同样的问题, 此错误会导致puppeteer不会正常返回base64编码的图片,即使修改代码指定了encoding同样不行,可以使用如下 pnpm-lock.yaml来安装依赖 pnpm-lock.yaml.txt

将package.json中的Puppeteer版本改为22.13.1,将.pnpm文件夹中的Puppeteer删除,然后重新执行pnpm i也可以解决,希望可以为Puppeteer添加版本限制,*会默认安装最新版

也可能存在其他breaking change 所以直接给出了能用的lock文件

sdutwsl commented 3 months ago

这个错误来自puppeteer-core v23.0.0的breaking change puppeteer-core: v23.0.0 可以参考 https://github.com/puppeteer/puppeteer/pull/12823 来解决,实测可以,但如果考虑到向下兼容的话,估计要判断puppeteer.screenshot的返回类型了

dreamerblue commented 3 months ago

建议指定 semver 版本,尽量不要用 *latest,且仓库包含 pnpm-lock.yaml。npm 生态是很脆弱的,不锁版本很容易过一段就会被供应链影响导致安装失败或功能异常。如果个别包需要跟进最新版本,可以单独定期升级依赖,测试没问题再发布到主干。