This is specifically written for solving the problem specified in the title of this article. It is how to solve an error message : npm ERR! missing. It is an error message when the command ‘npm list’ is executed. It is referring to the article shown with the title of ‘How to Check to Package Dependencies in Web-based Application powered by Express Framework using npm’ in this link. The error itself is happened because there are several files defined in the file named package.json inside the root folder of the web-based application project and those files don’t exist in the folder node_modules. The output specified as part of the error is shown below :
user@hostname:~/nodejs/test$ npm list [email protected] /home/user/nodejs/test ├── UNMET DEPENDENCY body-parser@~1.0.0 ... ... npm ERR! missing: body-parser@~1.0.0, required by [email protected] ... user@hostname:~/nodejs/test$
So, the main solution is to add the missing file specified in the above output command. The purpose of the file representing the package or module named body-parser with the version of 1.0.0 is to met the dependency specified in the package.json file. Below is the declaration of the dependency for the associated package or module named ‘body-parser’ with the version of 1.0.0 :
{ "name": "application-name", "version": "0.0.1", "private": true, "scripts": { "start": "nodejs ./bin/www" }, "dependencies": { "express": "~4.0.0", "static-favicon": "~1.0.0", "morgan": "~1.0.0", "cookie-parser": "~1.0.1", "body-parser": "~1.0.0", "debug": "~0.7.4", "jade": "~1.3.0" } }
As shown below, the folder named ‘node_modules’ is not exist at the first place because there haven’t any action taken to solve the dependency problem using ‘npm’ command tool :
user@hostname:~/nodejs/test$ ls app.js bin package.json public routes views user@hostname:~/nodejs/test$
So, the command to fulfill the solution or to solve the problem related to the package or module dependency is shown below :
npm install package-or-module-name
Below is the actual execution of the above command :
user@hostname:~/nodejs/test$ npm install body-parser [email protected] /home/user/nodejs/test └─┬ [email protected] ├── [email protected] ├─┬ [email protected] │ ├── [email protected] │ └── [email protected] └─┬ [email protected] └── [email protected] user@hostname:~/nodejs/test$
Check the content of the root folder of web-based application project again :
user@hostname:~/nodejs/test$ ls app.js bin node_modules package.json public routes views user@hostname:~/nodejs/test$ cd node_modules/ user@hostname:~/nodejs/test/node_modules$ ls body-parser bytes mime qs raw-body string_decoder type-is user@hostname:~/nodejs/test/node_modules$
As it can be seen in the above output, the package or module named ‘body-parser’ with its fellow package or module dependencies have already been stored inside the folder named ‘node_modules’. The correct solution can be achieved by the above command. It is effective if the packages or modules are not that much, let’s say just one or two packages or modules. But the more packages or modules which becoming the problem of unmet dependencies, it can be solved by one single command of ‘npm install’. It will automatically runs into all files specified in the ‘dependencies’ section declared in the file named package.json for further downloading and storing all of those packages or modules in the folder named ‘node_modules’ where it is specifically intended for this purpose.
One thought on “How to Solve npm Error Message : npm ERR! missing”