错误:找不到模块'socket.io'

时间:2013-06-12 05:34:06

标签: node.js socket.io

[~]# 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

7 个答案:

答案 0 :(得分:54)

您似乎已将socket.io安装在与当前路径不同的位置。如下所示安装全局:

npm install -g socket.io

或者引用您安装的位置:

var io = require('../lib/socket.io');

答案 1 :(得分:9)

感谢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路径,但它不起作用。

答案 2 :(得分:4)

我在Windows上的版本0.12.0遇到了同样的问题。我尝试了 npm install -g socket.io ,但这没有改变任何东西。还试过 npm cache clean 也没有变化,但在 npm update npm -g 之后,事情进展顺利。

答案 3 :(得分:2)

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

npm install socket.io --save

希望这可以解决您的问题。

答案 4 :(得分:1)

这比你尝试在你的html文件中获取socket.io几乎要发生:

  

的index.html

你有:

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

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

  

server.js

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

var io = require('socket.io').listen(server);
希望,能节省时间。

答案 5 :(得分:0)

我认为你已经执行了命令npm install socket.io 在不同的位置,您的文件在不同的目录中.. 因此,要么在具有文件的同一目录中运行该命令,要么在PATH变量中提及当前已安装socket.io的路径。

答案 6 :(得分:0)

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

TS2792: Cannot find module 'socket.io'.

所以我的修复是更新 tsconfig.json 添加一个新属性 (moduleResolution)。

tsconfig.json:

{
  "compilerOptions": {
    ....
    "moduleResolution": "node",
  }
}