我已经将我的 TypeScript 项目从 2.x 版更新到了 socket.io 的 3.0.1 版。 之后我无法再编译我的项目,因为没有 cors、cookie 和 component-emitter 的类型定义是已知的。
将它们(@types/cors、@types/cookie、@types/component-emitter)添加到我项目的 devDependencies 部分后,它又可以工作了,但这既没有记录在迁移指南中,也不觉得这是一个很好的添加解决方案3rdParty 组件,然后由于缺少依赖项而导致编译器错误。
嗯...根据this ,似乎这些类型实际上必须包含在dependencies
部分中,而不是包含在devDependencies
。 我们开工吧!
这解决了缺少 cors 和 cookie 类型的问题,但不能解决组件发射器的问题,组件发射器由包 socket.io-parser 使用,其中 @types/component-emitter 仅包含在 devDependencies 部分。 因此,即使使用 socket.io 3.0.3,我也会因为缺少 @types/component-emitter 而出现编译器错误。 我仍然需要将它添加到我自己的 devDependencies 部分,尽管这是 socket.io 的一个实现细节,没有任何记录。
最有用的评论
嗯...根据this ,似乎这些类型实际上必须包含在
dependencies
部分中,而不是包含在devDependencies
。 我们开工吧!