Error: Cannot find module 'socket.io'
Asked Answered
S

10

40
[~]# node node.js

Error: Cannot find module 'socket.io'

[~]# node -v
v0.10.10

socket.io installed:

npm install socket.io

npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
Sikko answered 12/6, 2013 at 5:34 Comment(2)
Do you have a package.json?Crowbar
If you are using typescript make sure that the module is copied to the build destination folder.Collencollenchyma
M
67

Looks like you have installed socket.io in a different location to your current path. Either install globally like below:

npm install -g socket.io

Or reference the location you've installed to:

var io = require('../lib/socket.io');
Moua answered 13/6, 2013 at 14:34 Comment(3)
var io = require('/root/node_modules/socket.io/lib/socket.io'); var express = require('/usr/local/lib/node_modules/express/lib/express.js');Sikko
@Moua - for me this does not work when I run node from crontab, at least on reboot. If I would add full path to require() function I believe it would work thenDiffusivity
dont forget to npm initDescribe
P
13

Thanks ajtrichards!

Just to add to the answer - in case you simple use

sudo npm install socket.io

The installation path will be

/home/.../.npm/socket.io

If you use sudo npm install -g socket.io

The installation path will be

/usr/local/lib/node_modules/socket.io

In first case, I tried adding the socket.io path in global path variable but it did not work.

Pratte answered 27/2, 2014 at 10:55 Comment(0)
C
6

you might have installed but not added to the dependencies in package.json Use below command to install socket.io module

npm install socket.io --save

Hope this will resolve your problem..

Collette answered 5/5, 2020 at 11:5 Comment(0)
S
5

I had this problem with NodeJs, Typescript and Socket.io 4. the error was:

TS2792: Cannot find module 'socket.io'.

So my fix was to update the tsconfig.json adding a new property (moduleResolution).

tsconfig.json:

{
  "compilerOptions": {
    ....
    "moduleResolution": "node",
  }
}
Shinar answered 13/4, 2021 at 3:51 Comment(0)
K
4

I had the same issue with version 0.12.0 on Windows. I tried npm install -g socket.io but that didn't change anything. Also tried npm cache clean also no change, but after npm update npm -g, things got well.

Krak answered 20/2, 2015 at 10:3 Comment(1)
That didn't really sort it for me on windows also but thanks for the suggestion!Zacharyzacherie
P
2

This almost happens than you try to get socket.io in you html files like :

index.html

where you have:

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

It will not find socket.io because you did not started module in you application file wich contain the server like

server.js

You must include following lines after started your server in server.js :

var io = require('socket.io').listen(server);

Hope, will save time.

Proceed answered 11/5, 2015 at 10:44 Comment(0)
T
0

I think that you have executed the command npm install socket.io in a different location and your files are in different directory.. So either run the command in the same directory which have your files or either mention the path where you have currently installed socket.io in your PATH variable.

Tahr answered 13/6, 2013 at 14:32 Comment(2)
Please put some more context into your answerEscolar
@AlecHenderson_v1.00 Basically I am saying that; you might have a directory say "ABC" where you have your node.exe files and npm.cmd (if you are using windows operating system) so there you would also be having a node_modules folder so you have to make sure that whenever you install any module you first change directory in cmd and reach there i.e. in "ABC". Also make sure that you have the path of "ABC" mentioned in PATH variable.Tahr
T
0

I had the same problem in mac... you can install the module with sudo npm install socket.io-client

Thurston answered 3/9, 2021 at 12:3 Comment(0)
C
0

Please check all your js file wherever you mentioned or called socket.io where in in my case it was a spelling mistake sokcet.io that I corrected and start working.

Cleasta answered 6/5, 2023 at 1:15 Comment(1)
This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From ReviewVarlet
N
0

I fixed it by adding "moduleResolution": "node" in tsconfig.json(which was inspired by the discussion above) and then restart my VScode. Hope this will help others.

Norton answered 27/6 at 3:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.