Socket.io:模块未找到:在“C:…\ node_modules \ engine.io \ lib”中无法解析“uws”。

9

我尝试在我的React/Flask项目中使用socket.io,但是每次在app.js文件中要求socket.io时,节点失败编译并出现以下消息:

编译失败。

./node_modules/engine.io/lib/server.js

模块未找到:无法解析“C:\ Users \ Walker \ Desktop \ xxxxx \ xxxxx \ node_modules \ engine.io \ lib”中的'uws'

我尝试手动使用Node安装uws,但没有任何变化。我还在另一台计算机上使用create-react-app并安装了socket.io,但我仍然收到相同的错误。我遵循了许多“入门”文章,但我仍然不断收到相同的错误。有人知道可能出了什么问题吗?


uwsnodenpm的版本? - Suresh Prajapati
uws 的作者抛弃了这个仓库。 - Khanh Hua
原来uws已经被弃用了,而且如果这只是客户端而不是实际的socket.io服务器,那么你应该绝对使用socket.io-client。 - Urasquirrel
2个回答

17

我刚刚遇到了同样的问题,但原因完全不同。目前,当我从npm安装最新的socket.io服务器包时,uws将无法找到。

这是因为uws的发布者最近上传了一个空包,删除了所有的实际代码 D:

您可以通过安装最后一个未被破坏的版本来修复此问题

yarn add uws@10.148.1 npm install uws@10.148.1

链接到空/废弃的包:https://www.npmjs.com/package/uws

Reddit上的深入背景信息:https://www.reddit.com/r/node/comments/91kgte/uws_has_been_deprecated/

我会在搜索此问题时出现的前几个结果中发布此内容,因为花费了我一段时间才找出问题,希望能够为某些人节省时间!


8

尝试使用socket.io-client

以下是代码:

import openSocket from 'socket.io-client';

const socket = openSocket(myURL);

socket.io-client和socket.io之间有什么区别吗? - Walker Reynolds
我在Node中使用socket.io,但在React中遇到了问题,所以我使用了socket.io-client。 - Matt Kuhns
这也解决了我 React 项目中的问题。 - Luke Robertson
如果这只是客户端而不是实际的socket.io服务器,那么你应该绝对使用socket.io-client。这在文档中靠近页面顶部已经说明了。 - Urasquirrel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接