找不到模块 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'

找不到模块 socket.io

Angular 2:错误 TS2307:找不到模块“socket.io-client”

错误:找不到模块'socket.io-client / dist / socket.io.min.js'

找不到 socket.io.js [重复]

带有express和socket.io的节点js-找不到socket.io.js