2015-10-17 22 views
15

Sto costruendo il mio primo progetto in Laravel e sto provando a usare Elixir, usando homestead su Windows 8.1. Ho colpito il noto NPM/problema vagante di troppo-lungo-path-nomi: https://harvsworld.com/2015/how-to-fix-npm-install-errors-on-vagrant-on-windows-because-the-paths-are-too-long/npm installa errori su vagrant/homestead/windows: EPROTO: errore di protocollo, symlink

così ho fatto la modifica di una riga raccomandato in tale articolo (grazie a dio per quel ragazzo), e poi corse (con e senza sudo): NPM installare --no-bin-link

mi ha spostato avanti così ora ho due diversi tipi di errori: errori un po 'mancante di accesso in scrittura', e un mucchio di errori "EACCES":

L'output di errore mi dà il mio prossimo indizio nella caccia al tesoro (credo): Si prega di provare a eseguire questo comando nuovamente come root/Administrator

Questo mi porta a this post, ma la differenza per me è che non c'è nessun cambiamento, anche dopo che uso sudo (o aggiornare i miei permessi degli utenti in questo modo):

sudo chown -R $ USER/usr/local

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

Aggiornamento: poi, dopo il suggerimento di sotto ottengo errori EXTXTBSY (anche dopo aver seguito il suggerimento viene richiesto di rinominare il NPM-debug.log indietro EPROTO e: enter image description here

Così ho provato a fare funzionare sorso per vedere se mi avrebbe dato indizi, e output di errore dovuto fare a me:

sudo npm rebuild node-sass 

Esecuzione che mi dà gli stessi errori EPROTO e ETXTBSY, e il file NPM-debug.log mostra: errore EPROTO: errore di protocollo, link simbolico '../node-sass/bin/node-sass' -> '/ home/vagrant/Code/Famiglia-laravel/node_modules/laravel-elixir/node_modules/gulp-sass/node_modules/.bin/node-Sass'

Poi dopo aver lavorato su alcune altre cose per un'ora sono tornato fresco e rifatto questi passaggi, questa volta ottenendo così un minor numero di errori:

  • sudo NPM-g installare NPM @ recente (fine)

  • sudo npm installare --no-bin-link (solo l'errore ETXTBSY e un errore nel plugin 'sequenza di esecuzione', nel compito 'sass ')

  • sudo NPM ricostruire nodo-sass --no-bin-link (nessun errore)

  • gulp (un solo errore:! non trovato: notify-send)

Avvicinarsi!

risposta

38

Ho cercato di capire questo problema per settimane. Ecco cosa ho fatto per farlo funzionare senza utilizzare il mio ambiente host:

Ho aggiornato il nodo all'ultima versione in homestead in base a nodesource.com:

sudo apt-get install --yes nodejs 
curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash - 

Ho aggiornato il npm alla versione più recente in homestead. Questo dovrebbe essere fatto dopo l'aggiornamento del nodo:

sudo npm -g install [email protected] 

Ho eseguito l'installazione di npm nella directory del progetto laravel. Ho anche dovuto usare la forza per ottenere tutte le dipendenze da installare:

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

ho ricostruito nodo-Sass secondo un errore di sorso:

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

Durante l'intera procedura se qualcosa non funziona o dopo ogni installazione, ho usato:

sudo npm cache clear 

Il mio host è Windows 10, con l'ultima virtualbox, l'ultimo vagabondo, l'ultima fattoria. Ho usato git bash come amministratore e ssh in vagabondo usando git bash.

Finora ho solo testato e verificato che il mio gulp funzioni. È possibile che altre dipendenze debbano essere ricostruite.

Spero che questo aiuti!

+0

Grazie !!! Questi primi collegamenti di coppia sembravano aiutare, poiché non ricevo più quegli errori "EACCES" quando: sudo npm installa --no-bin-links Ugh- ma avrei dovuto lasciare abbastanza bene da solo perché dopo aver fatto il 'forza' ora ricevo nuovi errori EEXIST ed ETXTBSY :( –

+0

In realtà no: ora gli errori EACCES si presentano solo nel mio npm-debug.log invece che nel prompt:/ –

+0

Ho aggiunto gli ultimi errori sopra ora - I Sapevo da tutti i post del forum che ottenere l'elisir per funzionare con Windows vm sarebbe stato orribile, ma sì, continua così: p –