37
[~]# node node.js

Error: Cannot find module 'socket.io'

[~]# node -v
v0.10.10

socket.io 安装:

npm install socket.io

npm WARN package.json policyfile@0.0.4 No repository field.
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
4

8 回答 8

66

看起来您已安装socket.io在与当前路径不同的位置。像下面这样全局安装:

npm install -g socket.io

或参考您安装到的位置:

var io = require('../lib/socket.io');
于 2013-06-13T14:34:47.563 回答
13

感谢ajtrichards!

只是为了添加答案-以防您简单使用

sudo npm install socket.io

安装路径将是

/home/.../.npm/socket.io

如果你使用 sudo npm install -g socket.io

安装路径将是

/usr/local/lib/node_modules/socket.io

在第一种情况下,我尝试在全局路径变量中添加 socket.io 路径,但它不起作用。

于 2014-02-27T10:55:54.713 回答
5

您可能已经安装但未添加到 package.json 中的依赖项中使用以下命令安装socket.io模块

npm install socket.io --save

希望这能解决你的问题..

于 2020-05-05T11:05:24.443 回答
4

我在 Windows 上使用 0.12.0 版本时遇到了同样的问题。我试过npm install -g socket.io但这并没有改变任何东西。还尝试了npm cache clean也没有变化,但是在npm update npm -g之后,事情变得好起来了。

于 2015-02-20T10:03:27.040 回答
2

这几乎发生在您尝试在 html 文件中获取 socket.io 时,例如:

索引.html

你在哪里:

 < script type="text/javascript" src="/socket.io/socket.io.js"></script>

它不会找到socket.io,因为您没有在包含服务器的应用程序文件中启动模块

服务器.js

在server.js中启动服务器后,您必须包含以下行:

var io = require('socket.io').listen(server);

希望,会节省时间。

于 2015-05-11T10:44:20.640 回答
1

我在 NodeJs、 Typescript 和 Socket.io 4上遇到了这个问题。错误是:

TS2792: Cannot find module 'socket.io'.

所以我的解决方法是更新tsconfig.json添加一个新属性(moduleResolution)。

tsconfig.json:

{
  "compilerOptions": {
    ....
    "moduleResolution": "node",
  }
}
于 2021-04-13T03:51:30.073 回答
0

我认为您已经npm install socket.io 在不同的位置执行了命令,并且您的文件位于不同的目录中。所以要么在包含文件的同一目录中运行命令,要么在 PATH 中提及您当前安装 socket.io 的路径多变的。

于 2013-06-13T14:32:43.357 回答
0

我在 mac 中遇到了同样的问题...您可以使用 sudo npm install socket.io-client 安装模块

于 2021-09-03T12:03:32.843 回答