Ошибка «EPROTO» при установке npm пакетов
При установке npm пакетов можно получить ошибку с кодом «EPROTO». Чаще всего она возникает, когда не хватает прав для создания символических ссылок, но могут быть и другие причины. Рассмотрим способы устранения этой неприятности.
Пример:
npm ERR! path ../@babel/parser/bin/babel-parser.js npm ERR! code EPROTO npm ERR! errno -71 npm ERR! syscall symlink npm ERR! EPROTO: protocol error, symlink '../@babel/parser/bin/babel-parser.js' -> '/home/vagrant/code/mysite.test/node_modules/.bin/parser'
С такой проблемой сталкиваются программисты, которые для разработки используют виртуальную машину с коробкой «vagrant». Например, VirtualBox + Vagrant + Homestead в Laravel проектах.
Способы устранения
-
Запустите командную строку (или редактор кода с терминалом) с правами администратора.
-
Выполните установку с дополнительными параметрами:
npm install --no-bin-links --save-dev
-
Если операционная система Linux, то попробуйте выполнить команды после перехода в режим суперпользователя:
sudo su
-
При использовании виртуальной машины с «vagrant» под Windows проделаем шаги:
- Нажмимаем клавиши Win + R для вызова окна «Выполнить».
Открываем утилиту «secpol.msc» — настройки локальной политики безопасности.
В разделе с локальными политиками выбираем «Назначение прав пользователя» и в настройках ищем пункт «Создание символических ссылок». Нажимаем на него два раза и добавляем имя текущего Windows пользователя.
-
Перезагружаем компьютер и пробуем повторить установку.
В качестве бонуса оставлю команду принудительного сброса кеша менеджера пакетов. Попробуйте её выполнить если все предыдущие способы не дали нужного результата.
npm cache clean --force