简体   繁体   中英

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 ?

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

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 .

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

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.

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

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!!

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.

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.

要解决缺少的 npm 模块,请运行:

sudo npm install -g npm-install-missing

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM