Ответ 1
Создание package.json с использованием npm init разрешило мою проблему.
Я запускаю 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
Создание package.json с использованием npm init разрешило мою проблему.
У меня та же проблема с установкой сервера 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
Эта команда решает проблему. Это сработало для меня:
sudo npm install -g --unsafe-perm=true --allow-root
У меня были проблемы с Linux. я написал
chown -R myUserName ./*
в папке моего проекта.
Из того, что я вижу в ваших журналах вы разместили:
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/
это должно решить эту проблему.
FWIW У меня были те же симптомы, но с другим пакетом. Создание package.json
и запуск npm init
сделали НЕ решение моей проблемы.
В этой системе, по-видимому, новые папки в этом месте создавались с правами root. Во время npm install
создаются новые папки. Это привело к тому, что npm-установка завершилась неудачно, даже при использовании sudo.
Решение заключалось в том, чтобы запустить npm install app
в другом месте без корневой umask.
У него нет разрешений на запись для others
(r-x). Попробуйте
chmod a+w <folder>
и повторите.
Сначала установите без -g (global) на root. После попытки использования -g (global) Это сработало для меня.
Я решил эту проблему, изменив разрешение моего каталога npm. Я пошел в глобальный каталог npm для меня это было в
/home/<user-name>
Я пошел в этот каталог, введя эту команду
cd /home/<user-name>
а затем изменил разрешение папки .npm, введя эту команду.
sudo chmod -R 777 ".npm"
Это сработало как обаяние для меня. Но в этом есть недостаток безопасности, т.е. Ваш глобальный каталог пакетов доступен для всех уровней.
Это решило мою проблему сразу - 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/...
Удалите папку dist и это решит мою проблему !!
Помимо вышеупомянутых решений, я столкнулся с этой ошибкой с файлом, к которому я пытаюсь получить доступ, который удаленно доступен, но физически отсутствует в локальной системе.
Выполните эти команды, и проблема будет решена!
sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules
Попробуйте дать все разрешения папке вашего проекта с помощью приведенной ниже команды
sudo chmod -R 777 /yourProjectDirectoryName
работать с
sudo npm install lodash