Ответ 1
Видел это из Исправления разрешений npm, и это помогло, может быть, вы могли бы также попробовать.
-
Вариант 1. Измените разрешение на каталог по умолчанию npm
-
Найдите путь к каталогу npm:
npm config get prefix
-
Для многих систем это будет /usr/local
.
ВНИМАНИЕ: Если отображаемый путь - просто /usr
, переключитесь на Вариант 2, или вы испортите свои разрешения.
-
Измените владельца каталогов npm на имя текущего пользователя (ваше имя пользователя):
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Это изменяет права доступа к подпапкам, используемым npm и некоторыми другими инструментами (lib/node_modules
, bin
и share
).
- Вариант 2: Изменить каталог по умолчанию npm на другой каталог
Временами вы не хотите менять владельца каталога по умолчанию, который использует npm (то есть /usr
), так как это может вызвать некоторые проблемы, например, если вы используете систему совместно с другими пользователями.
Вместо этого вы можете настроить npm для использования другого каталога. В нашем случае это будет скрытый каталог в нашей домашней папке.
-
Создайте каталог для глобальных установок:
mkdir ~/.npm-global
-
Настройте npm для использования нового пути к каталогу:
npm config set prefix '~/.npm-global'
-
Откройте или создайте файл
~/.profile
и добавьте~/.profile
строку:export PATH=~/.npm-global/bin:$PATH
-
Вернитесь в командную строку и обновите системные переменные:
source ~/.profile
Тест: Загрузите пакет глобально без использования sudo
.
'npm install node-g.raphael --save'
Вместо шагов 2-4 вы можете использовать соответствующую переменную ENV (например, если вы не хотите изменять ~/.profile
):
NPM_CONFIG_PREFIX=~/.npm-global
- Вариант 3: Используйте менеджер пакетов, который позаботится об этом за вас.
Если вы делаете новую установку Node на Mac OS, вы можете полностью избежать этой проблемы, используя менеджер пакетов Homebrew
. Homebrew
устанавливает вещи из коробки с правильными разрешениями.
brew install node
надеюсь, это поможет