npm install errors on vagrant/homestead/windows: EPROTO: ошибка протокола, символическая ссылка
Я строю свой первый проект в Laravel и пытаюсь использовать Elixir, используя homestead в Windows 8.1. Я попал в известную проблему npm / vagrant слишком длинных имен: https://harvsworld.com/2015/how-to-fix-npm-install-errors-on-vagrant-on-windows-because-the-paths-are-too-long/
поэтому я сделал одну строку, рекомендованную в этой статье (слава Богу за этого парня), а затем побежал (с судо и без него): НПМ установки-нет-Бен-ссылки
это тронуло меня впереди, поэтому теперь я получаю два разных вида ошибок: некоторые ошибки " отсутствующего доступа к записи "и кучу ошибок" EACCES":
вывод ошибки дает мне следующую подсказку в игре (я думаю): Попробуйте снова запустить эту команду как root / Administrator
это приводит меня к этот пост, но разница для меня в том, что нет никаких изменений даже после того, как я использую sudo (или обновляю свои разрешения пользователя):
судо команду chown -R $В пользователей / usr / local
sudo chown-R $(whoami)~/.npm
обновление: затем после предложения ниже я получаю ошибки EPROTO и EXTXTBSY (даже после выполнения предложенного предложения переименовать npm-debug.log back:
поэтому я попытался запустить gulp, чтобы увидеть, даст ли он мне подсказки, и вывод ошибок заставил меня сделать:
sudo npm rebuild node-sass
запуск, который дает мне те же ошибки EPROTO и ETXTBSY, и npm-debug.файл журнала показывает: ошибка EPROTO: ошибка протокола, символическая ссылка../узел-Сасс/ОГРН/узел-Сасс' -> '/домашний/бродяга/код/семейные-фреймворк Laravel/папки node_modules/фреймворк Laravel-эликсир/папки node_modules/глоток-Sass с/папки node_modules/.bin / node-sass'
затем, поработав над некоторыми другими вещами в течение часа, я вернулся свежим и переделал эти шаги, на этот раз получив меньше ошибок:
sudo npm-G установить npm@latest (fine)
sudo npm install --no-bin-links (только ошибка ETXTBSY и ошибка в плагине 'Run sequence', в задаче 'sass')
sudo npm rebuild node-sass --no-bin-links (без ошибок!)
gulp (только одна ошибка: не найдено: уведомить-отправить)
ближе!
2 ответов
Я пытаюсь выяснить эту проблему в течение нескольких недель. Вот что я сделал, чтобы заставить его работать без использования личных среды:
я обновил узел до последней версии в усадьбе в соответствии с nodesource.com:
sudo apt-get install --yes nodejs
curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash -
я обновил npm до последней версии в homestead. Это необходимо сделать после обновления узла:
sudo npm -g install npm@latest
я запустил установку npm в каталоге проекта laravel. Мне также пришлось использовать силу, чтобы получить все зависимости от установить:
sudo npm install --no-bin-links
sudo npm cache clear
sudo npm install --force --no-bin-links
я перестроил узел-sass в соответствии с ошибкой глотка:
sudo npm rebuild node-sass --no-bin-links
во время всего этого процесса, если что-то не удается или после каждой установки, я использовал:
sudo npm cache clear
мой хост-windows 10, с последним virtualbox, последним бродягой, последней усадьбой. Я использовал Git bash в качестве администратора и ssh в vagrant, используя git bash.
до сих пор я только проверил и подтвердил, что мой глоток работ. Возможно, что другие зависимости должны быть перестроенный.
надеюсь, что это помогает!
причина вашего начального EACCES
ошибка была в том, что вы использовали sudo
без использования . Никогда не используйте sudo npm
. Всегда используйте sudo -H npm
.
инструкции в интернете везде (включая документы NPM) просто неверны.