[~]# 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
答案 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",
}
}