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

затем попробуйте установить снова.