Questions & Answers

error while installing "npm install -g ionic cordova"

When I install npm install -g ionic cordova It throws below error

npm WARN checkPermissions Missing write access to /usr/lib/node_modules npm ERR! path /usr/lib/node_modules npm ERR! code EACCES npm ERR! errno -13 npm ERR! syscall access npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules' npm ERR! { Error: EACCES: permission denied, access '/usr/lib/node_modules' npm ERR! stack: 'Error: EACCES: permission denied, access \'/usr/lib/node_modules\'', npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/lib/node_modules' } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in: npm ERR!

I tried with root user as well. I am using node v9.11.1 , npm 6.0.1

Answers(3) :

run with sudo in Mac OS or linux

sudo npm install -g ionic cordova

or in windows open cmd with run as administrator

npm install -g ionic cordova

Never use npm with sudo (or as root)! You can create potential backdoor to your system.

I have just answered a very similar question in the following link: How to fix the problem with vue.js instalation

Basicaly what is happening is that NPM does not have the privileges to access /usr/local/lib. To give it access, you could change the ownership of ~/.npm in order to belong to your current user. This could be this way:

sudo chown -R $(whoami) ~/.npm

This way you do not have to run npm as sudo, which is not recomended. I believe that it is due to vulnerabilities that are known in npm packages.

Here is an article about it: Don't use "sudo" with npm "install"