Resolving EACCES permissions errors when installing packages globally (Mac OS)

If you see an EACCES error when you try to install a package globally, you can either: Reinstall npm with a node version manager (recommended), or Manually change npm's default directory

Manually change npm's default directory

Note: This section does not apply to Microsoft Windows.

To minimize the chance of permissions errors, you can configure npm to use a different directory. In this example, you will create and use hidden directory in your home directory.

  1. Back up your computer.

  2. On the command line, in your home directory, create a directory for global installations:
    mkdir ~/.npm-global
  3. Configure npm to use the new directory path:

    npm config set prefix '~/.npm-global'
  4. In your preferred text editor, open or create a ~/.profile file and add this line:

    export PATH=~/.npm-global/bin:$PATH
  5. On the command line, update your system variables:

    source ~/.profile
  6. To test your new configuration, install a package globally without using sudo:

    npm install -g jshint

Instead of steps 2-4, you can use the corresponding ENV variable (e.g. if you don't want to modify ~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

 

Reference: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally