Я пытаюсь установить node-g.raphael
, и я получаю следующую ошибку:
Bender-03:htdocs alfred$ sudo npm install node-g.raphael --save
Password:
> contextify@0.1.15 install
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir
'/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify/build'
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node"
"/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"
"rebuild"
gyp ERR! cwd
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15
(node_modules/contextify):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: contextify@0.1.15
install: 'node-gyp rebuild'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ node-g.raphael@0.0.9
added 2 packages and updated 1 package in 6.556s
Я пробовал это решение, но это не решает мою проблему, все еще получая ту же ошибку.
Дайте мне знать, если что-нибудь, что я могу добавить, чтобы помочь в решении этого.
Ответ 1
Видел это из Исправления разрешений npm, и это помогло, может быть, вы могли бы также попробовать.
Для многих систем это будет /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
надеюсь, это поможет
Ответ 2
Я использую:
1 - npm config get prefix
2 - sudo chown -R $ (whoami) $ (префикс префикса конфигурации npm)/{lib/node_modules, bin, share}
3 - sudo npm install
Ответ 3
Проблема исправлена для меня, выполнив следующую команду.
sudo npm install -g @angular/cli
Удалось установить угловой.
Затем попробуйте запустить ng -v для подтверждения.