laravel - code - npm instala errores en vagrant/homestead/windows: EPROTO: error de protocolo, enlace simbólico
etxtbsy text file is busy rename (2)
Estoy construyendo mi primer proyecto en Laravel y tratando de usar Elixir, usando homestead en Windows 8.1. He encontrado el problema conocido de npm / vagrant de nombres de ruta demasiado largos: https://harvsworld.com/2015/how-to-fix-npm-install-errors-on-vagrant-on-windows-because-the-paths-are-too-long/
Así que hice la edición de una línea recomendada en ese artículo (gracias a Dios por ese tipo), y luego corrí (con y sin sudo): npm install --no-bin-links
Me ha adelantado, así que ahora tengo dos tipos diferentes de errores: algunos errores de ''Falta de acceso de escritura'' y un montón de errores "EACCES":
La salida de error me da mi siguiente pista en la búsqueda del tesoro (creo): intente ejecutar este comando nuevamente como root / administrador
Eso me lleva a esta publicación , pero la diferencia para mí es que no hay cambios incluso después de usar sudo (o actualizar mis permisos de usuario como así):
sudo chown -R $ USER / usr / local
sudo chown -R $ (whoami) ~ / .npm
Actualización: luego, después de la sugerencia a continuación , obtengo errores EPROTO y EXTXTBSY (incluso después de seguir la sugerencia solicitada para cambiar el nombre de npm-debug.log nuevamente:
Así que intenté ejecutar Gulp para ver si me daría pistas, y la salida de error me hizo hacer:
sudo npm rebuild node-sass
Ejecución que me da los mismos errores EPROTO y ETXTBSY, y el archivo npm-debug.log muestra: error EPROTO: error de protocolo, enlace simbólico ''../node-sass/bin/node-sass'' -> ''/ home / vagrant / Código / Family-laravel / node_modules / laravel-elixir / node_modules / gulp-sass / node_modules / .bin / node-sass ''
Luego, después de trabajar en otras cosas durante una hora, volví de nuevo y volví a hacer estos pasos, esta vez obteniendo muchos menos errores:
sudo npm -g install npm @ latest (fino)
sudo npm instala --no-bin-links (solo el error ETXTBSY y un error en la secuencia de ejecución del complemento, en la tarea ''sass'')
sudo npm reconstruir node-sass --no-bin-links (¡sin errores!)
trago (solo un error: no encontrado: notificar-enviar)
¡Acercarse!
He estado tratando de resolver este problema durante semanas. Esto es lo que hice para que funcione sin usar mi entorno de host:
Actualicé el nodo a la última versión en homestead de acuerdo con nodesource.com:
sudo apt-get install --yes nodejs
curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash -
Actualicé npm a la última versión en homestead. Esto debe hacerse después de actualizar el nodo:
sudo npm -g install npm@latest
Ejecuté npm install en el directorio del proyecto laravel. También tuve que usar la fuerza para instalar todas las dependencias:
sudo npm install --no-bin-links
sudo npm cache clear
sudo npm install --force --no-bin-links
He reconstruido node-sass de acuerdo con un error de trago:
sudo npm rebuild node-sass --no-bin-links
Durante todo este proceso, si algo falla o después de cada instalación, usé:
sudo npm cache clear
Mi host es Windows 10, con el último virtualbox, el último vagabundo, la última granja. Utilicé git bash como administrador y ssh en vagrant usando git bash.
Hasta ahora solo he probado y confirmado que mi trago funciona. Es posible que otras dependencias necesiten ser reconstruidas.
¡Espero que esto ayude!
La causa de su error inicial de EACCES
fue que usó sudo
sin usar la opción -H
. NUNCA use sudo npm
. SIEMPRE use sudo -H npm
.
Las instrucciones en Internet en todas partes (incluidos los documentos de NPM) son simplemente incorrectas.