Jeanluca Scaljeri
Jeanluca Scaljeri

Reputation: 29129

npm install is missing modules

Before I can run gulp in my project I need to run npm install. This works except on my computer, because I get the following error:

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)
    ...

I can fix this with

$> npm install socket.io

Now when I do the install command again I get

Error: Cannot find module 'di'
    ...

When I install di and run the install command again I get:

Error: Cannot find module 'log4js'

I think that this might continue for a very long time. Any suggestions what is going on here and how to fix this ?

Upvotes: 27

Views: 115445

Answers (10)

Mohamed NDIAYE
Mohamed NDIAYE

Reputation: 1

Upgrade your npm version Install nvm which is easier to switch node js versions For me node 12.18.3 worked Just do: nvm use 12.18.3 to switch version

run npm install again and node_modules will appear

Upvotes: 0

AnatuGreen
AnatuGreen

Reputation: 895

If the npm-install-missing does not work for you, knowing the name of the Packages that are missing will help you out here. All I had to do was first open my package.json file inside VSCode, then paste or type the names of the missing modules into it (under dependencies) according to the way other package names were written there. Then I ran npm install after that. This method is helpful when you are working on a file but somehow you did not get the package.json file or some of the modules are not listed therein.

Remember to stop and restart a running server after you do npm install for your new dependencies to reflect on your work.

Upvotes: -1

Bluby
Bluby

Reputation: 331

I think the npm module madge would help you find the missing dependencies. It goes through your actual code and makes a list of all the dependencies found within. You could then do an npm i for each of the modules found.

Upvotes: 0

aniran mohammadpour
aniran mohammadpour

Reputation: 161

Beside other answers, if you are using Angular and cannot make new angular project and hangs, you can get into the folder and open terminal and write:

npm -i

Maybe useful for other things too!!

Upvotes: 0

BALAJI RAJ
BALAJI RAJ

Reputation: 125

This worked for me. By commenting 3 lines in C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js.

Refer [https://flaviocopes.com/cb-apply-not-a-function/]

// fs.stat = statFix(fs.stat) # Line: 61
// fs.fstat = statFix(fs.fstat) # Line: 62
// fs.lstat = statFix(fs.lstat) # Line: 63

Upvotes: 0

Mukeli
Mukeli

Reputation: 15

To resolve missing npm modules run:

sudo npm install -g npm-install-missing

Upvotes: -3

Rafael Rocha
Rafael Rocha

Reputation: 776

I've faced the same problem when bootstrapping a MEAN application and add each missing dependencie with npm install packageName --save was not an option so I came across to npm-install-missing whom has saved my life :)

Installation

npm install -g npm-install-missing

Usage

npm-install-missing

Upvotes: 29

Seif Tml
Seif Tml

Reputation: 2423

It seems that gulp need 'karma' dependencies (socket.io ,di ,log4js...) so you will have to run :

npm install karma

so just runing this command solved the problem, and all should be good, the same thing happens with grunt as well for some reasons.

Upvotes: 3

benek
benek

Reputation: 2178

I am using the same version of npm/node. Sometimes, it is like npm is "lost". What I suggest is :

  • rm of your node modules (at least the one that is concerned)
  • npm cache clean
  • run "npm install" several times, until all dependencies are resolved and no message are displayed

Upvotes: 7

jgillich
jgillich

Reputation: 76219

Running npm install will install all dependencies that are specified in the package.json. Seems like you have quite a few dependencies that are not defined that way. Use npm install packageName --save and npm will add the package to your package.json.

Upvotes: 18

Related Questions