npm ERR! Erreur: EPERM: opération non autorisée, renommer


109

Quand j'exécute, npm installj'obtiens cette erreur

npm ERR! Erreur: EPERM: opération non autorisée, renommez C: \ projects ****** \ node_modules \ react-async-script '->' C: \ projects ******* \ node_modules.react-async-script .SUPPRIMER'

  • J'exécute le cmd en tant qu'administrateur
  • J'ai couru npm cache cleanavant
  • Je me suis assuré que toutes les autres applications n'avaient rien lié à node_modulesopen

2
exécuter le cmd en tant qu'administrateur a fonctionné pour moi
Homer

Dans mon cas, j'ai dû l'exécuter en tant qu'utilisateur normal (pas administrateur) et cela a fonctionné, il semble qu'il y ait un conflit d'autorisations utilisateur. Mais il semble que toutes les autres solutions données ici npm clean, npm install ne sont pas nécessaires. C'est un problème d'autorisation utilisateur. Si plus de personnes peuvent confirmer, je peux publier une nouvelle réponse.
MG Developer

Réponses:


125

Dans ma situation, cela a aidé. Avant de procéder à l'exécution de ces commandes, fermez toutes les instances VS Code.

  1. nettoyer le cache avec

    npm cache clean --force
  2. installez la dernière version de npm globalement en tant qu'administrateur:

    npm install -g npm@latest --force
  3. nettoyer le cache avec

    npm cache clean --force
  4. Essayez à nouveau d'installer votre composant.

J'espère que cela résoudra votre problème. Sinon, vous pouvez désactiver temporairement votre programme antivirus et réessayer.


1
merci @ kamil.ka c'était mon problème sous Windows. Atom bloquait le package.json pour que l'installation de npm ne puisse pas le changer.
George

29
Le même commentaire s'applique à VS Code sur Windows… fermez-le et le problème disparaît
Martin Kearn

1
Pour moi, j'avais un autre processus de nœud en cours d'exécution, json-server dans mon cas. Une fois que j'ai arrêté que le package installé sans erreur.
EddieB

Pour moi, des erreurs comme "ERR! Enoent Ceci est lié au fait que npm ne pouvait pas trouver un fichier" ont été résolues en mettant fin à toutes les instances du code de Visual Studio.
Abhishek

Parfois, nous surveillons l'utilisation de webpack qui contient tous les fichiers js, y compris les liens de modules non mis à jour, par exemple. app.js. Donc, après la mise à jour de npm, essayez d'exécuter npm run watch. Après cela, dans mon cas, les liens de module appropriés ont été mis à jour dans un nouveau fichier app.js.
Peter van der Lely

21

Non package.json, mais pour une raison quelconque, mon node_modules/était devenu en lecture seule. La réinitialisation a résolu ce problème.


«Réinitialiser» pour moi signifiait fermer 1.VS, 2.supprimer node_modulesde FileExplorer, redémarrer 3.mon PC en 4.cours d'exécution npm install --force. Puis ENFIN cela a fonctionné.
EGC

21

Je l'ai fait fonctionner lorsque j'ai essayé d'installer npm avec une option de force pour récupérer les ressources distantes même si une copie locale existe sur le disque. Essayez de courir

npm install --force

Mise à jour Pour certains de mes collègues, cette solution ne fonctionnait pas. Mais nous avons essayé d'utiliser du fil au lieu de npm. Cela fonctionne (plus vite aussi) sans aucun problème tout le temps

yarn install [package-name]

D'autres personnes ont suggéré de désactiver le logiciel audiovisuel. Pour moi, sur le réseau sur lequel je suis, ce n'était pas une option. Le drapeau --force a résolu ce problème pour moi
user2590928

Je n'ai résolu mon problème qu'en utilisant du fil, je recommande donc de lui donner une chance.
Ângelo Polotto

20

Si vous voulez éviter l' --forceoption (qui est toujours une meilleure approche) , je suggère de vous assurer que vous avez arrêté d'exécuter le projet, car c'est généralement la principale raison du verrouillage des fichiers dans près de 90% des cas que j'ai vus

Je suggère les étapes suivantes dans cet ordre:

1- Dans l'arrêt Angular ng set dans React, l'arrêt npm start résout généralement ce problème car cette erreur se produit généralement si un serveur de développement exécute le projet car il verrouille certains fichiers et npm ne peut pas les mettre à jour, ce qui génère cette erreur

2- Si ce qui précède ne fonctionne pas, essayez de fermer l'éditeur de code dans lequel l'espace de travail est ouvert (peut-être qu'il verrouille certains fichiers ou quelque chose)

Alors essayez de fermer l'éditeur de code et d'exécuter:

npm install

3- Si cela ne fonctionne toujours pas, vous pouvez peut-être essayer l' --forceoption

npm install --force

2
C'était mon problème, j'ai rimraffé un dossier node_modules via le terminal sur VS Code - pour une raison quelconque, il n'a pas tout à fait supprimé les node_modules de mon système de fichiers et l'avait verrouillé. Ce n'est que lorsque j'ai fermé cette fenêtre de VS Code et l'ai ouverte de nouveau qu'elle a été supprimée et que j'ai pu exécuter à nouveau npm install.
Stu Furlong

13

J'obtenais la même erreur et selon https://github.com/Medium/phantomjs/issues/19, cela pourrait être causé par votre logiciel antivirus. J'ai désactivé le mien pour la durée de l'installation et exécuté "npm install" sur cmd en tant qu'administrateur et cela a fonctionné. J'espère que cela t'aides.


1
Par github.com/npm/npm/issues/12059, cela a été corrigé. Aucun mot sur la sortie qu'il en fera. Selon les commentaires, la désactivation de l'AV ne fonctionne pas toujours.
user1821052

Dans mon cas, j'ai dû fermer SourceTree pendant l'installation.
Dejan

13

Pour moi, je viens de fermer l'éditeur de code (VS Code), puis d'exécuter la même commande. Et cela résout le problème pour moi.


9

Comme Martin Kearn l'a souligné dans un commentaire, la fermeture de Visual Studio a résolu ces problèmes d'autorisation npm pour moi. Évidemment, VS verrouille parfois les fichiers node_modules.


8

J'obtenais la même chose. Je n'ai trouvé cela nulle part, mais il m'a frappé que nos machines virtuelles ont tendance à changer les fichiers en état en lecture seule. J'ai donc ouvert package.jsonles propriétés du fichier de et désélectionné Read-onlydans l'onglet "Général".

Pas

  1. Accédez au package.jsonfichier.
  2. Cliquez avec le bouton droit et sélectionnez Propriétés .
  3. Dans l' onglet Général , section Attributs , désélectionnez Lecture seule .
  4. Cliquez sur Appliquer pour appliquer la modification.

Lecture seule pour moi, même si le problème initial était que j'utilise généralement du code pour installer. Dans ce cas, j'ai ouvert une nouvelle instance de l'application dans Visual Studio afin de pouvoir porter certaines modifications d'une ancienne version et VS a rapidement commencé à s'installer. J'ai ensuite ouvert le code pour exécuter l'installation de npm comme je le ferais normalement et les deux applications se sont mises à tourner. Après plusieurs échecs, j'ai ensuite supprimé en masse un module de nœud d'une version racine de travail de notre application pour me permettre de sauvegarder les modifications. Ce dossier était en lecture seule et a donc continué à bloquer les choses.
Matrim

8

Il s'agit d'une erreur typique causée par l'antivirus. Il existe une solution de contournement pour des cas comme le mien, où je ne peux pas désactiver A / V (politique de l'entreprise).

Vous devez changer le package polyfills.jsintérieur Npm:

[NODE_HOME]/node_modules/npm/node_modules/graceful_fs/polyfills.js

Recherchez cette déclaration:

if (process.platform === "win32") {

À l'intérieur de cette instruction, il y a un délai d'attente pour une nouvelle tentative en cas d'erreur. Le problème est que dans certains cas, après l'expiration du délai, le fichier est toujours verrouillé par l'A / V. La solution est d'extraire le délai d'expiration et de laisser cette instruction en boucle. Le changement avec le code précédent a commenté:

if (platform === "win32") {

fs.rename = (function (fs$rename) { return function (from, to, cb) {
  var start = Date.now()
  var backoff = 0;
  fs$rename(from, to, function CB (er) {
    if (er
        && (er.code === "EACCES" || er.code === "EPERM")
        /*&& Date.now() - start < 60000*/) {
            console.log("Retrying rename file: " + from + " <> " + to)
            fs$rename(from, to, CB);
      /*setTimeout(function() {
        fs.stat(to, function (stater, st) {
          if (stater && stater.code === "ENOENT")
            fs$rename(from, to, CB);
          else
            cb(er)
        })
      }, backoff)*/
      if (backoff < 100)
        backoff += 10;
      return;
    }
    if (cb) cb(er)
  })
}})(fs.rename)
}

Vous êtes le vrai MVP.
Atanas Korchev le

4

Dans mon cas, quelque chose s'est bloqué et un redémarrage rapide l'a résolu.


4

J'ai eu ce problème plusieurs fois uniquement sous Windows, je les essaie dans l'ordre habituel.

  1. npm install --force
  2. Vérifiez si node_modules est défini en lecture seule et supprimez-le s'il l'est
  3. Supprimer node_modules/
  4. Vérifiez si un éditeur est ouvert qui pourrait avoir accès au dossier racine du projet
  5. Redémarrer :(

En général, essayer npm installaprès l'une de ces étapes le résoudra.


2

Essayer de renommer un fichier sous un autre nom qui existe déjà peut provoquer une EPERMerreur sous Windows.



2

J'ai eu le même problème après la mise à jour vers npm vers 5.4.2, npm a commencé à donner la même erreur pour la plupart des commandes npm. Une solution suggère de l'exécuter avec --no-optional, mais cela n'a pas toujours fonctionné.

D'autres ont suggéré de rétrograder, mais je ne voulais pas rétrograder.

Je soupçonnais qu'il y avait un problème avec l'installation, je ne sais pas ce que c'était.

J'ai donc mis à jour mon npm:

npm i -g npm

et a bien fonctionné depuis lors.


1

npm échouait pour moi à scandirpour:

npm install -g webpack

... qui pourrait être causé par npm tentant de "modifier" des fichiers potentiellement verrouillés par d'autres processus comme mentionné ici et dans quelques autres threads github. Après avoir forcé le nettoyage du cache, vérifié le cache, exécuté en tant qu'administrateur, désactivé l'AV, etc., la solution qui fonctionnait réellement pour moi était de fermer tout ce qui pouvait verrouiller les fichiers (c'est-à-dire redémarrer mon ordinateur).

J'espère que cela aide quelqu'un à lutter.


1

J'ai eu le même problème. La raison de l'erreur réside dans les caractères non pris en charge dans le chemin d'accès au fichier. Remplacement du cyrillique en anglais - cela a aidé.



1

J'ai fait ce qui suit:

  1. Mise à niveau du npm vers la dernière version: npm install -g npm@6.5.0-next.0
  2. supprimé le dossier npm-cache de: c:/users/[username]/AppData/Roaming/npm-cache
  3. Le cache a-t-il été nettoyé: npm cache clean --force
  4. Ran le npm install.

1

Ouvrez l'invite de commande en tant qu'administrateur et accédez à l'emplacement du projet, puis exécutez npm install. cela a fonctionné pour moi.


1

Dans mon cas, exécutant npm: v6.9.0&& node: v10.16.1on Windows, je devais exécuter ma CLI (git bash) en tant qu'administrateur . Ensuite, les packages ont été installés sans aucun avertissement / erreur


0

Ma réponse est de faire en npm cache clean --forcepremier. Ensuite, exécutez npm install -g npm@5.3.0pour installer la version npm 5.3.0. pour moi, cette version npm fonctionne sans problème.


0

Supprimez simplement le dossier du package du chemin des packages globaux npm. puis réinstallez le package. Notez que les packages sont installés globalement dans: C: \ Users \ votre-nom \ AppData \ Roaming \ npm \ node_modules


0

J'avais le même problème dans Windows 10. Suivez simplement ces étapes:

  • Ouvrez cmd en tant qu'administrateur.

  • installez le package npm mis à jour.

  • npm i -g npm

  • npm init - oui


0

Exécuter des commandes en tant que super administrateur a fonctionné pour moi. Réessayez après avoir fermé l'éditeur dans lequel vous travaillez.


0

J'ai lutté avec ça aussi. J'ai finalement une solution qui fonctionne très bien si vous utilisez nvm:

cd ~/.nvm/versions/node/{your node version}/lib/ npm install npm

et c'est tout.


0

Cela peut être dû à votre logiciel antivirus. Si vous ne pouvez pas désactiver AV, vous pouvez essayer de modifier l'emplacement d'installation global de NPM lorsque le nœud s'installe dans le répertoire APPDATA qui est activement surveillé par les moteurs AV. Essayez d'exécuter les commandes suivantes:

npm config set prefix "YOUR CUSTOM LOCATION" npm config set cache "YOUR CUSTOM LOCATION"

Supprimez le répertoire node_modules et réinstallez votre package.


0

Dans mon cas, la configuration typescript.disableAutomaticTypeAcquisitiondans Visual Studio Code truesemble aider.


0

La fermeture de PHPStorm a résolu le problème pour moi.


0

J'ai fermé VS, supprimé le dossier node_modules.

Puis a couru:

npm i -D -E clean-webpack-plugin@3.0.0 css- 
loader@3.4.2 html-webpack-plugin@3.2.0 mini-css- 
extract-plugin@0.9.0 ts-loader@6.2.1 typescript@3.7.5 
webpack@4.41.5 webpack-cli@3.3.10 

Ensuite, j'ai dû changer la propriété pour ne pas lire uniquement sur le dossier node_modules une fois qu'il a été exécuté.

Puis a couru:

npm i @microsoft/signalr @types/node

Ensuite, j'ai ouvert le projet dans VS et le package.json avait l'air correct avec les dépendances.

Dans le même esprit que d'autres, qui parlent de lecture seule sur le dossier node_modules et de fermeture de VS pour exécuter l'installation de npm.


0

Si vous rencontrez le problème sur PHP Storm:

  1. Fermer l'onglet du terminal
  2. Ouvrez un nouvel onglet de terminal
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.