2015-10-17 9 views
15

Buduję swój pierwszy projekt w Laravel i próbuję użyć Eliksiru, używając zagród w Windows 8.1. Mam hit znany npm/Vagrant kwestię zbyt długich nazw ścieżek: https://harvsworld.com/2015/how-to-fix-npm-install-errors-on-vagrant-on-windows-because-the-paths-are-too-long/npm instaluje błędy na vagrant/homestead/windows: EPROTO: błąd protokołu, symlink

Więc zrobiłem edycję jednego wiersza zalecanych w tym artykule (dzięki Bogu za tego faceta), a następnie prowadził (zi bez sudo): npm install --no-bin-linki

To przenieśli mnie do przodu, więc teraz mam dwa rodzaje błędów: błędy brakuje jakiegoś „Dostęp do zapisu” i kilka „błędów” EACCES:

Wyjście błędu daje mi następną wskazówkę w polowaniu na śmiecia (myślę): Spróbuj ponownie uruchomić tę komendę jako root/Administrator

To prowadzi mnie do this post, ale różnica jest dla mnie nie ma żadnej zmiany, nawet po tym, jak używać sudo (lub zaktualizować uprawnienia użytkownika, jak tak):

sudo chown -R $ USER/usr/local

sudo chown -R $ (whoami) ~/.npm

Aktualizacja: to po sugestia poniżej uzyskać EPROTO i błędy EXTXTBSY (nawet po wykonaniu poproszony sugestię, aby zmienić nazwę NPM-debug.log powrotem: enter image description here

Spróbowałem więc działa łyk, aby zobaczyć, czy to daje mi wskazówki, i wyjście błędu kazał mi zrobić:

sudo npm rebuild node-sass 

Running, która daje mi te same EPROTO i ETXTBSY błędów, a plik NPM-debug.log pokazuje: błąd EPROTO: błąd protokołu, symlink "../node-sass/bin/node-sass" -> '/ home/vagrant/Code/Family-laravel/node_modules/laravel-elixir/node_mulules/gulp-sass/node_modules/bin/node-Sass'

Następnie po pracy na kilka innych rzeczy o godzinie wróciłem świeże i redid kroki, tym razem coraz mniej błędów sposób:

  • sudo npm -g zainstalować najnowszy npm @ (fine)

  • sudo npm install --no-bin-linki (właśnie błąd ETXTBSY i błąd w sekwencji uruchamiania plugin '', w zadaniu „Sass „)

  • sudo npm przebudować węzeł-Sass --no-bin-linki (brak błędów)

  • łyk (tylko jeden błąd: nie znaleziono: notify-send)

Podejście bliżej!

Odpowiedz

38

Od wielu tygodni próbuję rozwiązać ten problem. Oto, co zrobiłem, aby działał bez korzystania z mojego środowiska hosta:

Zaktualizowałem węzeł do najnowszej wersji w zagrodzie zgodnie z nodesource.com:

Zaktualizowałem npm do najnowszej wersji w zagrodzie. Należy to zrobić po aktualizacji węzła:

sudo npm -g install [email protected] 

Uruchomiłem instalację npm w katalogu projektu laravel. Miałem też użyć siły, aby uzyskać wszystkie zależności zainstalować:

sudo npm install --no-bin-links 
sudo npm cache clear 
sudo npm install --force --no-bin-links 

I przebudowany węzeł-Sass według błędu haustem:

sudo npm rebuild node-sass --no-bin-links 

czasie całego tego procesu, jeśli coś się nie powiedzie lub po każdym zainstaluj, użyłem:

sudo npm cache clear 

Mój komputer to Windows 10, z najnowszą usługą Virtualbox, najnowszym vagrantem, najnowszym domem. Użyłem git bash jako administrator i ssh w vagrant używając git bash.

Do tej pory przetestowałem i potwierdziłem, że mój łyk działa. Możliwe, że inne zależności muszą zostać odbudowane.

Mam nadzieję, że to pomoże!

+0

Dziękujemy! Te pierwsze kilka linków wydawało się pomóc, a ja już nie pojawiają się błędy te „EACCES” Kiedy: sudo npm install --no-bin-linki Ugh- ale powinno mi pozostało wystarczająco dobrze sam, ponieważ po wykonaniu 'force' teraz dostaję nowe błędy EEXIST i ETXTBSY :( –

+0

Właściwie nie: teraz błędy EACCES pojawiają się właśnie w moim npm-debug.log zamiast w monicie:/ –

+0

Dodałem najnowsze błędy powyżej teraz - I Wiedziałem ze wszystkich postów na forum, że uzyskanie eliksiru do pracy z moim Windows vm byłoby okropne, ale tak, to po prostu idzie dalej: p –

Powiązane problemy