Npm не будет устанавливать экспресс?
В настоящее время у меня установлена node.js версия 0.8.8 и npm 1.1.59.
Всякий раз, когда я запускаю:
$ npm install -g express
Я получаю это взамен:
npm ERR! Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'
npm ERR! { [Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/devinandrews/.npm/64a534c1-express.lock' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 12.1.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express"
npm ERR! cwd /Users/devinandrews
npm ERR! node -v v0.8.8
npm ERR! npm -v 1.1.59
npm ERR! path /Users/devinandrews/.npm/64a534c1-express.lock
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/devinandrews/npm-debug.log
npm ERR! not ok code 0
Я вытягиваю свои волосы прямо сейчас, пытаясь понять это.
Update:
Я побежал
$ npm -g ls
чтобы увидеть, что установили npm в глобальном масштабе:
/usr/local/lib
├─┬ [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
но если я запустил:
$ npm ls
он возвращает пустой?
Ответы
Ответ 1
У меня была та же проблема, и npm cache clear
не исправил ее. Эта проблема вызвана тем, что каталог .npm
в вашем домашнем каталоге был создан с привилегиями root. Скорее всего, первая команда npm, которую вы выполнили, была sudo npm -g
, и теперь вы пытаетесь npm install
в локальном каталоге.
Чтобы решить:
-
sudo chown -R yourusername ~/.npm
- Это может быть необязательно, но я также должен был
rmdir ~/tmp
npm install
из package.json должен работать после этого.
Ответ 2
запустите npm cache clean
и попробуйте снова установить его
Ответ 3
У меня такая же проблема, эта проблема вызвана тем, что каталог .npm в вашем домашнем каталоге был создан с привилегиями root.
использовать:
$sudo npm install -g express
Ответ 4
Вы пробовали sudo npm -g install express?
Ответ 5
Решение:
1 - закажите своему пользователю папку .npm:
sudo chown -R Webmaste /Users/webmaste/.npm/
2 - В тестовой папке или вашей папке:
sudo npm install -g [email protected]
3 - Вызвать экспресс из вашего фактического местоположения:
/usr/local/share/npm/bin/express
4 -
sudo cd . && npm install
5 - наконец:
node app
окончательное сообщение в консоли должно выглядеть следующим образом:
Express server listening on port 3000 in development mode
Ответ 6
Если вы не видите ничего плохого в использовании sudo npm install -g package_name
. И есть проблема с вводом пароля, который вы всегда можете добавить к файлам sudoers или к той же группе, к которой принадлежит npm
.
Итак, чтобы добавить себя к sudoers для npm edit /etc/sudoers
добавив что-то вроде этого в нижнюю часть файла:
your_username localhost=/usr/local/bin/npm
Здесь приводится пошаговое руководство о том, как достичь этого, если вам нужно больше деталей.
Ответ 7
В моем случае вместо каталога ~/.npm, принадлежащего root, это было ~/tmp, которое я не думал проверять, пока, наконец, одно из сообщений об ошибке не привело меня к поиску. Процедура исправления довольно проста, так как это каталог tmp, мы можем просто сдуть его и начать снова с того, что вам принадлежит.
sudo rmdir ~/tmp
mkdir ~/tmp
Ответ 8
Я столкнулся с той же проблемой.
Я обновил пакет nodejs, перейдя на веб-сайт загрузки node js, а затем я не столкнулся с этой проблемой.
Спасибо.
Удачи
Ответ 9
Запустите powershell от имени администратора, затем введите:
Set-ExecutionPolicy RemoteSigned
затем попробуйте установить снова.