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: enter image description here

поэтому я попытался запустить 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) просто неверны.