Ошибка: EACCES: отклонено разрешение

Я запускаю npm install lodash, но он выдает ошибку Ошибка: EACCES: разрешение отклонено. Я знаю, что это проблема с разрешением, но, насколько я знаю, sudo-разрешение не требуется для установки модуля node локально. Если я запускаю его с помощью sudo, он устанавливается внутри папки ~/node_modules. drwxrwxr-x - это разрешение файла существующей папки. Я не могу понять, что могло пойти не так.

Ниже приведено сообщение об ошибке.

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log

Ответ 1

Создание package.json с использованием npm init разрешило мою проблему.

Ответ 2

У меня та же проблема с установкой сервера webpack в глобальном масштабе, используйте шаги из этого URL Решил мою проблему, я буду работать для вас.

Шаги, упомянутые выше. Сделайте резервную копию вашего компьютера перед началом работы.

Создайте каталог для глобальных установок:

1. mkdir ~/.npm-global

Настройте npm для использования нового пути к каталогу:

2. npm config set prefix '~/.npm-global'

Откройте или создайте файл ~/.profile и добавьте следующую строку:

3. export PATH=~/.npm-global/bin:$PATH

Вернитесь в командную строку и обновите системные переменные:

4. source ~/.profile

Тест: Загрузите пакет глобально без использования sudo.

npm install -g jshint

Вместо шагов 2-4 вы можете использовать соответствующую переменную ENV (например, если вы не хотите изменять ~/.profile):

NPM_CONFIG_PREFIX=~/.npm-global

Ответ 3

Эта команда решает проблему. Это сработало для меня:

sudo npm install -g --unsafe-perm=true --allow-root

Ответ 4

У меня были проблемы с Linux. я написал

chown -R myUserName ./* 

в папке моего проекта.

Ответ 5

Из того, что я вижу в ваших журналах вы разместили:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

directory /home/rupesh/node_modules/ не имеет необходимых разрешений для создания каталога, поэтому запустите chown -r rupesh:rupesh/home/rupesh/node_modules/ это должно решить эту проблему.

Ответ 6

FWIW У меня были те же симптомы, но с другим пакетом. Создание package.json и запуск npm init сделали НЕ решение моей проблемы.

В этой системе, по-видимому, новые папки в этом месте создавались с правами root. Во время npm install создаются новые папки. Это привело к тому, что npm-установка завершилась неудачно, даже при использовании sudo.

Решение заключалось в том, чтобы запустить npm install app в другом месте без корневой umask.

Ответ 7

У него нет разрешений на запись для others (r-x). Попробуйте

chmod a+w <folder>

и повторите.

Ответ 8

Сначала установите без -g (global) на root. После попытки использования -g (global) Это сработало для меня.

Ответ 9

Я решил эту проблему, изменив разрешение моего каталога npm. Я пошел в глобальный каталог npm для меня это было в

/home/<user-name>

Я пошел в этот каталог, введя эту команду

cd /home/<user-name>

а затем изменил разрешение папки .npm, введя эту команду.

sudo chmod -R 777 ".npm"

Это сработало как обаяние для меня. Но в этом есть недостаток безопасности, т.е. Ваш глобальный каталог пакетов доступен для всех уровней.

Ответ 10

Это решило мою проблему сразу - Mac Mojave 10.14.6 - PhpStorm.

Unhandled rejection Error: EACCES: permission denied, mkdir '/Users/myname/.npm/_cacache/index-v5/fb/5a'

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

Исходное сообщение:fooobar.com/questions/15782849/...

Ответ 11

Удалите папку dist и это решит мою проблему !!

Ответ 12

Помимо вышеупомянутых решений, я столкнулся с этой ошибкой с файлом, к которому я пытаюсь получить доступ, который удаленно доступен, но физически отсутствует в локальной системе.

Ответ 13

  Выполните эти команды, и проблема будет решена!

sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules

Ответ 14

Попробуйте дать все разрешения папке вашего проекта с помощью приведенной ниже команды

sudo chmod -R 777 /yourProjectDirectoryName

работать с

sudo npm install lodash