Установка npm пакетов глобально без sudo на OS X и Linux

npm устанавливает пакеты локально всередине ваших проектов по-умолчанию. Вы также можете установить пакеты глобально (например, npm install -g <package>) (можно использовать для приложений командной строки). Недостатком этого способа является необходимость использования root пользователя (или sudo) для глобальной установки.

Ниже представлен способ глобальной установки пакетов для текущего пользователя.

1. Создайте директорию для глобальных пакетов
mkdir "${HOME}/.npm-packages"
2. Укажите для npm где хранить глобально установленные пакеты. Добавьте в ваш ~/.npmrc файл строки:
prefix=${HOME}/.npm-packages
3. Удостоверьтесь, что npm найдёт установленные бинарники и страницы с мануалами. Добавьте следующее в ваш .bashrc/.zshrc:
NPM_PACKAGES="${HOME}/.npm-packages"

PATH="$NPM_PACKAGES/bin:$PATH"

# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH # delete if you already modified MANPATH elsewhere in your config
export MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
Гляньте в статью npm-g_nosudo чтобы сделать вышеприведенные шаги автомагически.

Замечание: если вы используете OS X, файл .bashrc может не существовать, и терминал будет получать параметры окружения из других файлов, например: .profile или .bash_profile. Эти файлы также остаются в домашней папке. В этом случае, просто добавьте следующую строку к ним, что заставит терминал также загрузить файл .bashrc:

source ~/.bashrc