Reputation: 2453
I did a clean install of macOS Sierra yesterday, when I tried installing ng CLI I got this error.
Error: EACCES: permission denied, rmdir '/usr/local/lib/node_modules/.staging'
I have tried to do sudo uninstall
, npm clean cache
, and re-install but with no luck. How can I solve this issue?
Upvotes: 1
Views: 1858
Reputation: 2453
I was able to fix the error by using option 2 in the NPM documentation:
Option 2: Change npm's default directory to another directory
There are times when you do not want to change ownership of the default directory that npm uses (i.e.
/usr
) as this could cause some problems, for example if you are sharing the system with other users.Instead, you can configure npm to use a different directory altogether. In our case, this will be a hidden directory in our home folder.
Make a directory for global installations:
mkdir ~/.npm-global
Configure npm to use the new directory path:
npm config set prefix '~/.npm-global'
Open or create a
~/.profile
file and add this line:export PATH=~/.npm-global/bin:$PATH
Back on the command line, update your system variables:
source ~/.profile`
Test: Download a package globally without using
sudo
.npm install -g jshint
Instead of steps 2-4 you can also use the corresponding ENV variable (e.g. if you don't want to modify
~/.profile
):NPM_CONFIG_PREFIX=~/.npm-global
Upvotes: 3