web-dev-qa-db-fra.com

erreur "ETXTBSY: le fichier texte est occupé" lors de l'installation de npm

Lorsque vous exécutez npm install [any package] ou même npm install sur Homestead j'obtiens l'erreur suivante:

npm ERR! ETXTBSY: text file is busy, rmdir '/home/vagrant/valemus-shop-starter/valemus-shop/node_modules/fsevents'

Le journal de débogage peut être vu ici

  • Boîte 'laravel/Homestead' (v3.0.0)
  • Node: v8.2.1
  • NPM: 5.3.0

J'ai essayé de supprimer le répertoire fsevents, mais il n'existe pas.

Comment puis-je réparer ça?

27
Martijn Imhoff

Faire passer la version de npm à la version 5.7.1 a été très utile.

Commande utilisée pour rétrograder: npm install -g [email protected]

J'utilise Win10, Vagrant, Ubuntu v14.04 et Node v8.11.4

10
kpratihast

Je suis tombé sur la même chose sur Windows 10 + VirtualBox (VBox) + Vagrant + Laravel Homestead lorsque je voulais changer pour réagir en mode frontal.

Et après de nombreuses recherches et essais, cette solution a fonctionné pour moi, peut-être que cela fonctionne également pour vous.

Arrêté le vagabond:

vagrant halt

Ajout de ce qui suit dans la section configure du fichier Vagrant dans le répertoire Homestead

  config.vm.provider "virtualbox" do |v|
        v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
  end

a commencé le cmd en tant qu'administrateur

puis vagrant up

et vagrant ssh

cd à développement dir

puis supprimé le répertoire node_modules de rm -rf node_modules/ le cas échéant

puis a couru le Sudo npm install && npm run dev

et le tout a été installé sans aucun avertissement ni erreur.

C'est le résultat de deux heures de lecture :)

Edit:

Si votre problème n'est pas résolu et que vous avez la configuration mentionnée, vous pouvez utiliser une autre solution:

Installez le Node sur votre machine Windows aussi

Puis cd dans votre répertoire de développement et lancez le fichier npm install de Windows et vous obtiendrez le même résultat.

Vous pouvez également lancer le npm run watch depuis un windows cmd après.

Cela m'a aidé à lever la charge du VM) et à laisser Windows surveiller et recevoir les notifications du npm run watch sous Windows.

À votre santé

24
Babak Bandpey

Lancez simplement "npm install" dans Windows au lieu de Homestead. Bien entendu, vous devez avoir installé npm pour Windows pour le faire.

9
Wilson Wang

J'ai eu beaucoup de mal à résoudre ce problème sur ma machine Windows 10 avec Homestead. Et après beaucoup d’efforts, je l’ai résolu de cette façon;

supprimez votre dossier node_modules.

Vous exécutez ces commandes sur votre terminal Windows:

npm install --no-bin-links (After some experience it is necessary for virtual machines)
npm rebuild --no-bin links

Généralement, cela fonctionne après ces commandes, mais si vous avez pris cette erreur

"Nœud Sass n'a pas pu trouver de liaison pour votre environnement actuel:"

veuillez exécuter cette commande sur votre Homestead Terminal pour installer le noeud Sass for Linux.

npm rebuild node-sass

si ce n'est pas du travail, essayez d'utiliser du fil. Supprimez le fichier de modules de nœud package.json.lock et yarn.lock (le cas échéant) et tapez

yarn install

Si tous ne sont pas sauvegardés, tilisez toutes les commandes npm en dehors de la machine virtuelle. Cela fonctionnera.

J'espère que ceci vous aide...

8
Hayreddin Tüzel

Il m'est arrivé la même chose

Mon environnement est Linux

fsevents est un module dédié à mac

S'il vous plaît essayez la commande suivante

npm install --no-optional

8
horikeso

Je continuais à avoir une erreur, même après avoir suivi

  config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, 
     "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
  end

comme suggéré par Babak Bandpey

Il s'est avéré qu'il y avait un autre problème ennuyeux de limite de caractères de chemin de fichier. Cela se produit assez souvent si vous utilisez un module de noeud avec un nom long. Vous pouvez facilement résoudre ce problème en suivant ces étapes après le vagabond ssh dans linux vm:

  1. Créez un dossier ‘node_modules’ dans votre dossier d’accueil mkdir ~/node_modules
  2. Ajouter un lien symbolique dans le dossier "node_modules" que vous venez de créer dans votre dossier de projet

    ln -sf ~/node_modules /vagrant/your-project-folder

Cette solution garantira que tous les modules de nœud sont stockés dans le répertoire de base au lieu du dossier synchronisé. Source originale: https://blog.rudylee.com/2014/10/27/symbolic-links-with-vagrant-windows/

J'espère que cela aidera quelqu'un ayant un problème similaire, merci!

5
Azhar Khattak

J'ai également du mal à trouver une solution à ce problème, mais la voici.

  1. Assurez-vous de mettre à jour le noeud à la dernière version

Pour mettre à jour, vous pouvez installer n

Sudo npm install -g n

Alors juste:

Sudo n latest
  1. Définissez les scripts Node) pour utiliser les variables d'environnement sur toutes les plateformes.

En parcours vagabond:

npm install --save-dev cross-env
npm install 
npm run dev 

Cela a fait l'affaire, même si j'ai passé toute une journée à trouver la bonne solution ( https://www.npmjs.com/package/cross-env )

3
XFaramir

J'avais un problème avec "npm install" aussi, j'utilise Windows 10. Enfin, je l'ai corrigé. Ce que j'ai fait, c'est que je suis sorti de "vagrant ssh" et que je lance "vagrant box update", puis "npm install" a fonctionné. Notez que j'ai lancé "vagrant box update" et "npm install" sur "vagrant ssh". J'espère que ça aide.

3
Janet W.

je devais d'abord supprimer le dossier node_modules, puis je l'ai fait.

Sudo chmod a+x .

pour m'assurer que j'ai le privilège de faire quoi que ce soit sur la machine, alors je

Sudo npm install --no-bin-links

d'après mon expérience, aucun lien bin n'est requis dans le vagabond car ces VM ne prennent pas en charge les liens bin (corrigez-moi si je me trompe).

Sudo npm run dev

à ce stade, certaines personnes pourraient ne rencontrer aucune erreur trouvée dans cross-env. Dans ce cas, supprimez cross-env dans le fichier package.json et exécutez-le à nouveau. Cela a fonctionné pour moi, mais certaines personnes rencontrent toujours le même problème. Ça vaut le coup de tenter le coup.

1
Jayakusuma