找不到模块 socket.io
Posted
技术标签:
【中文标题】找不到模块 socket.io【英文标题】:cannot find module socket.io 【发布时间】:2014-07-02 17:50:00 【问题描述】:我对 nodejs 和 socket.io 还是很陌生。当时我对nodejs一无所知。我遇到了一个可怕的错误。
我安装 nodejs 的整个步骤(在 Windows 7 上):
- Access nodejs.org and click to their green download button.
- Install nodejs in F:/nodejs
- Install socket.io with command npm install socket.io
- Install node supervisor with command npm install supervisor -g
就是这样。然后我尝试在这一行中使用 socket.io:
var io = require('socket.io').listen(app);
它输出一个错误:
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (F:\nodejs\chat.js:8:10)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
我已经尝试了所有建议的方法,例如清理缓存、重新安装 nodejs 或更改 socket.io 模块路径。不幸的是,所有这些解决方案都没有解决这个问题。
这个可怕的错误杀死了我一整天。我非常感谢任何帮助。
【问题讨论】:
NodeJS - How to resolve "Cannot find module" error的可能重复 ***.com/questions/17058298/… 【参考方案1】:尝试在 node.js 文件所在的文件夹(需要模块的位置)中执行 npm install socket.io
。 npm 会在您执行 npm install socket.io
的任何位置创建一个文件夹 node_modules
,而您可能没有在正确的文件夹中执行此操作。
npm install supervisor -g
确实有效,因为 -g 是全局标志,您基本上可以在任何地方执行此操作。
【讨论】:
@pennstatephil 是的主管不是 socket.io 虽然 我做了你的建议。什么都没有改变。 @user3247703 你能确认你在项目的根文件夹中看到 node_modules 文件夹和 socket.io 文件夹 init 吗? 我已经使用此代码console.log(module.paths)
检查了模块路径。这就是结果F:\\nodejs\\node_modules, F:\\node_modules
我的socket.io文件夹被放置在npm app
,在windows appData文件夹中【参考方案2】:
问题是npm install socket.io
安装的包不仅仅是模块本身,还带来了样例等东西。
安装时,npm 会创建一个node_modules
文件夹。
在该文件夹内,有一个名为 socketio
的文件夹。
在其中,还有另一个名为 node_modules
的文件夹。
在这个里面,有一个名为 socket.io
的文件夹。
将这个文件夹 (socket.io
) 移动或复制到脚本所在的第一个 node_modules
文件夹内。等等,它的工作原理!
【讨论】:
以上是关于找不到模块 socket.io的主要内容,如果未能解决你的问题,请参考以下文章
节点 js 错误:找不到模块 './lib/socket.io'
Angular 2:错误 TS2307:找不到模块“socket.io-client”