javascript - front - error "ETXTBSY: el archivo de texto está ocupado" en la instalación de npm
laravel webpack tutorial (9)
Lo mismo me pasó a mí
Mi entorno es linux
fsevents es un módulo dedicado a mac
Por favor, intente el siguiente comando
npm instalar --no-opcional
Al ejecutar npm install [any package]
o incluso npm install
en homestead, npm install
el siguiente error:
npm ERR! ETXTBSY: text file is busy, rmdir ''/home/vagrant/valemus-shop-starter/valemus-shop/node_modules/fsevents''
El registro de depuración se puede ver here
- Caja ''laravel / granja'' (v3.0.0)
- Nodo: v8.2.1
- NPM: 5.3.0
Intenté eliminar el directorio fsevents
, sin embargo, no existe.
¿Cómo puedo solucionar esto?
Luché con este problema en mi máquina con Windows 10 con Homestead muchas veces. Y después de mucho esfuerzo lo resolví de esa manera;
borre su carpeta de node_modules.
Usted ejecuta estos comandos en su terminal de Windows:
npm install --no-bin-links (After some experience it is necessary for virtual machines)
npm rebuild --no-bin links
Generalmente funciona después de estos comandos, pero si tiene este error
"Node Sass no pudo encontrar un enlace para su entorno actual:"
ejecute este comando en su terminal Homestead para instalar el nodo Sass para Linux.
npm rebuild node-sass
Si no es trabajo, intente usar hilo. Elimine los archivos de carpeta de módulos de nodo package.json.lock y yarn.lock (si hay) y escriba
yarn install
Si todos ellos no están a salvo, use todos los comandos npm de la máquina virtual. Será trabajo.
Espero que esto te ayude...
Me encontré con lo mismo en Windows 10 + VirtualBox (VBox) + Vagrant + Laravel Homestead cuando quería cambiar para reaccionar frontend.
Y después de mucha búsqueda, prueba y error, esta solución funcionó para mí, quizás también lo sea para usted.
Detuvo al vagabundo
vagrant halt
Se agregó lo siguiente en la sección de configuración del Vagrantfile en el directorio de Homestead
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
comenzó el cmd como administrador
luego vagrant up
y vagrant ssh
cd al directorio de desarrollo
luego se eliminó el directorio node_modules por rm -rf node_modules/
si lo hubiera
y luego ejecutó el sudo npm install && npm run dev
y todo se instaló sin advertencias ni errores.
Este es el resultado de dos horas de lectura :)
Editar:
Si su problema no se resuelve y tiene la configuración mencionada, puede usar otra solución:
Instale el nodo en su máquina de Windows también
Luego, cd a su directorio de desarrollo y ejecute la npm install
desde Windows y obtendrá el mismo resultado.
También puede iniciar el npm run watch
desde un cmd de windows posteriormente.
Esto me ayudó a levantar la carga de la máquina virtual y dejar que Windows haga el npm run watch
y reciba las notificaciones de npm run watch
en Windows.
Aclamaciones
Reducir la versión npm a 5.7.1 hizo el truco para mí.
Comando utilizado para degradar: npm install -g [email protected]
Estoy usando Win10, Vagrant, Ubuntu v14.04 y Node v8.11.4
Simplemente emita "npm install" en Windows en lugar de en Homestead. Por supuesto, necesitas tener npm para Windows instalado para hacer eso.
También me cuesta encontrar una solución para esto, pero aquí está.
- Asegúrate de actualizar el nodo a la última versión
Para actualizar, puede instalar n
sudo npm install -g n
Entonces solo
sudo n latest
- Establezca scripts de nodo para usar variables de entorno en todas las plataformas
En carrera errante:
npm install --save-dev cross-env
npm install
npm run dev
Eso hizo el truco, aunque pasé un día entero buscando la solución correcta ( https://www.npmjs.com/package/cross-env )
También tuve un problema con "npm install", utilizo Windows 10. Finalmente lo solucioné, lo que hice es salir de "vagrant ssh" y ejecutar "vagrant box update", luego "npm install" funcionó. Observe que ejecuté "vagrant box update" y "npm install" fuera de "vagrant ssh". Espero eso ayude.
Todavía estaba recibiendo un error, incluso después de hacer lo siguiente
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id,
"VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
según lo sugerido por
Resultó que había otro problema molesto del límite de caracteres de la ruta del archivo. Esto sucede con bastante frecuencia si está utilizando un módulo de nodo con un nombre largo. Puede resolver esto fácilmente siguiendo estos pasos después de vagrant ssh en linux vm:
- Cree la carpeta ''node_modules'' en su carpeta de inicio
mkdir ~/node_modules
Agregue un enlace simbólico a la carpeta ''node_modules'' que acaba de crear dentro de su carpeta de proyecto
ln -sf ~/node_modules /vagrant/your-project-folder
Esta solución garantizará que todos los módulos de nodo se almacenen dentro del directorio de inicio en lugar de en la carpeta sincronizada. Fuente original: https://blog.rudylee.com/2014/10/27/symbolic-links-with-vagrant-windows/
Espero que ayude a alguien tener un problema similar, gracias!
Tuve que eliminar la carpeta node_modules primero, luego lo hice
sudo chmod a+x .
para asegurarme de que tengo el privilegio de hacer cualquier cosa en la máquina, entonces yo
sudo npm install --no-bin-links
No se requieren enlaces bin en vagrant de mi experiencia porque estas máquinas virtuales no admiten enlaces bin (corríjame si estoy equivocado). Entonces yo solo
sudo npm run dev
en este punto, algunas personas podrían no encontrar ningún error encontrado entre env. En ese caso, simplemente elimine cross-env en el archivo package.json y ejecútelo nuevamente. Funcionó para mí, pero algunas personas todavía encuentran el mismo problema. Podría valer la pena darle una oportunidad.