Fixing NPM permissions

Written by - Saumya

05 October 2016

The problem is to use sudo everywhere and try to fix things that way. Especially while dealing with global NPM modules. Sometimes it may happen that sudo also will fail to install.

TL;DR: The fix I am using is to change the user permission to current user.

Here are some basic commads to get the things going.

Get the global npm modules path

npm config get prefix

Details about all the files and their permission to owners

ls -la /usr/local/lib/node_modules

Change the owner of the files recursively to the new user name

sudo chown -R user_name /usr/local/

Prints the current user

whoami

When you are using sudo to install anything, it will create a folder named .staging as root owner, inside the node_modules folder and keep the installed module there but could not move the module to actual folder and so eventually fail.

The fix is to change the permission of the /usr/local/ recursively to the current user. Then install the modules without sudo. Well, the official video on the doc says you can actually just change the permission of below three directories inside /usr/local/ instead of all the directories inside /usr/local/

  • /user/local/lib/node_modules
  • /usr/local/bin/
  • /usr/local/share/

Happy nodding.