错误:找不到模块“socket.io”
Posted
技术标签:
【中文标题】错误:找不到模块“socket.io”【英文标题】:Error: Cannot find module 'socket.io' 【发布时间】:2013-06-08 03:22:08 【问题描述】:[~]# 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
【问题讨论】:
你有 package.json 吗? 如果您使用的是打字稿,请确保将模块复制到构建目标文件夹。 【参考方案1】:看起来您已将socket.io
安装在与当前路径不同的位置。像下面这样全局安装:
npm install -g socket.io
或参考您安装到的位置:
var io = require('../lib/socket.io');
【讨论】:
var io = require('/root/node_modules/socket.io/lib/socket.io'); var express = require('/usr/local/lib/node_modules/express/lib/express.js'); @ajtrichards - 对我来说,当我从 crontab 运行节点时,这不起作用,至少在重新启动时。如果我要为 require() 函数添加完整路径,我相信它会起作用 别忘了 npm init【参考方案2】:感谢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 路径,但没有成功。
【讨论】:
【参考方案3】:您可能已安装但未添加到 package.json 中的依赖项
使用以下命令安装socket.io
模块
npm install socket.io --save
希望这能解决您的问题..
【讨论】:
【参考方案4】:我在 Windows 上使用 0.12.0 版时遇到了同样的问题。我试过 npm install -g socket.io 但这并没有改变任何东西。也试过npm cache clean也没有什么变化,但是在npm update npm -g之后,一切都好了。
【讨论】:
这并没有真正为我在 Windows 上排序,但感谢您的建议!【参考方案5】:这几乎发生在您尝试在 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);
希望,会节省时间。
【讨论】:
【参考方案6】:我在使用 NodeJs、Typescript 和 Socket.io 4 时遇到了这个问题。错误是:
TS2792: Cannot find module 'socket.io'.
所以我的解决方法是更新 tsconfig.json 添加一个新属性 (moduleResolution)。
tsconfig.json:
"compilerOptions":
....
"moduleResolution": "node",
【讨论】:
【参考方案7】:我认为你已经执行了命令npm install socket.io
在不同的位置,您的文件在不同的目录中..
因此,要么在包含文件的同一目录中运行命令,要么在 PATH 变量中提及当前安装 socket.io 的路径。
【讨论】:
请在您的回答中添加更多上下文 @AlecHenderson_v1.00 基本上我是这么说的;你可能有一个目录说“ABC”,你有你的 node.exe 文件和 npm.cmd(如果你使用的是 Windows 操作系统),所以你也有一个 node_modules 文件夹,所以你必须确保无论何时安装您首先在 cmd 中更改目录并到达那里的任何模块,即在“ABC”中。还要确保你有 PATH 变量中提到的“ABC”的路径。【参考方案8】:我在 mac 中遇到了同样的问题...您可以使用 sudo npm install socket.io-client 安装模块
【讨论】:
以上是关于错误:找不到模块“socket.io”的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2:错误 TS2307:找不到模块“socket.io-client”