cocogoat
cocogoat copied to clipboard
更新依赖
在尽可能不改动现有代码的前提下,更新了一波 npm 依赖。不过还有以下问题可能需要作者 @xytoki 帮助解决。
- 我简单测试了各项功能的工作情况,但可能还是需要再深度检查一遍有没有功能出现故障。
- 我暂时没搞明白成就自动扫描在本地应该如何测试。虽然单文件版的构建可以在本地启动扫描,但是准确率很差。Actions 里下载的单文件版准确率也很差,说明不是更新依赖引起的。
- PreJS 里相关的外部库版本已经发生变化,但字节 CDN 里似乎没有对应的版本。不过目前 PreJS 已经默认关闭,应该没有影响。
- Vite 的配置文件需要升级为 ES 模块的模式,但目前里面还有一些
require
,看下用什么方式处理。 - GitHub Actions 配置里可能也需要提高一下 node 版本,目前里面的 Node.js 16 已经是不受支持的版本的了。
- 还有部分库没有更新到最新版本,具体列表如下所示。
-
element-plus
和onnxruntime-web
更新以后构建会失败,一眼看不出原因和解决方案,故不升级。 - 我对 Sentry 不熟悉,且没有测试条件,故不升级大版本。
- TypeScript 及相关 dev 依赖升级后会破坏一些版本关系,不想处理,故不升级大版本。
-
$ pnpm outdated
┌────────────────────────────────────────┬─────────┬────────┐
│ Package │ Current │ Latest │
├────────────────────────────────────────┼─────────┼────────┤
│ element-plus │ 2.2.0 │ 2.5.3 │
├────────────────────────────────────────┼─────────┼────────┤
│ onnxruntime-web │ 1.10.0 │ 1.16.3 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/browser │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/core │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/tracing │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/types │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/utils │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @sentry/vue │ 6.19.7 │ 7.98.0 │
├────────────────────────────────────────┼─────────┼────────┤
│ @typescript-eslint/eslint-plugin (dev) │ 5.62.0 │ 6.19.1 │
├────────────────────────────────────────┼─────────┼────────┤
│ @typescript-eslint/parser (dev) │ 5.62.0 │ 6.19.1 │
├────────────────────────────────────────┼─────────┼────────┤
│ eslint-config-alloy (dev) │ 4.9.0 │ 5.1.2 │
├────────────────────────────────────────┼─────────┼────────┤
│ typescript (dev) │ 4.9.5 │ 5.3.3 │
└────────────────────────────────────────┴─────────┴────────┘
Deploy Preview for cocogoat ready!
Name | Link |
---|---|
Latest commit | 5d27e9088caf4e9a433e26a183e8ebfe22b52fe1 |
Latest deploy log | https://app.netlify.com/sites/cocogoat/deploys/662a3a3576d0c50008bfeb75 |
Deploy Preview | https://deploy-preview-72--cocogoat.netlify.app |
Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.
感谢,我应该在春节前后把这个处理完合进去。
- 自动扫描理论上用webpack serve就能正常工作,(vite理论上应该也行啊?),失败率高可能是各种原因引起的,比如说原神引入了成就搜索之后失败率就有上升,可能需要调优一下opencv部分,不知道有没有空,有空我就看看,现在都接近退坑了(
- onnxruntime目前需要锁死1.1.10,因为依赖了外部cdn的wasm文件,这个如果要升级的话目前其实是把onnx换成paddlejs合适一些,但涉及挺大的重构的,目前就先留在这个版本了
- sentry系列的包理论上也可以升级的,官方说的是运行库比server新是没问题的,我到时测试一下
- prejs之后应该是不会开了,现在各大公共cdn都有各种问题,现在甚至是在考虑把wasm之类的都自己提供服务的,所以公共cdn没有版本的问题倒是不需要考虑
试着调试了一下,大概情况如下:
- webpack serve 确实可以跑成就识别。
- Vite 下的 WorkerMacro 有点小问题,简单修改后可以在
vite-dev
模式下跑起来,成就识别工作正常。不过普通的生产模式仍有问题,可能需要重新设计 Vite 下的 WorkerMacro。 - (开发模式下)需要新版 Vite 才能正常打开成就识别那个 frame,用 Vite V4 会报错 404。
- 新版 Vite 下单文件构建已经无法正常工作,回退到 Vite V4 可以构建出正常工作的单文件版本。出错的原因是对于
import __magic__ from './file.ts?worker&inline'
这种导入,新版 Vite 上的结果是字符串error
。 - 无论是 webpack serve 还是 Vite serve,成就识别的准确率都是极高的,与线上版本表现一致。
单文件版准确率差的问题,实质上是文本编码问题。下载 Actions 里的单文件构建版,启动成就识别,观察控制台输出,可以发现,识别结果都是乱码。根据这篇文章,基本可以认为乱码类型是“以 ISO8859-1 方式读取 UTF-8 编码的中文”。(太怪了 😥)
也就是说,在这个 PR 以前,单文件版的成就识别功能就是无法正常使用的,而且似乎也没有人反馈。再考虑到新版 Vite 已经完全无法 inline 导入 Worker,我们可能应当放弃单文件模式下的成就识别(或者说 Worker 支持),甚至完全放弃单文件构建。
已经把 Sentry 和 onnxruntime 以外的依赖都升级并处理了,作者最后测试一下功能的正确性应该就可以合并了。