npm ERR! Erreur: EPERM: opération interdite, renommer

quand j'exécute "npm install" je reçois cette erreur

npm ERR! Error: EPERM: operation not permitted, rename C:projects******node_modulesreact-async-script' -> 'C:projects*******node_modules.react-async-script.DELETE'
  • je suis en cours d'exécution de la cmd en tant qu'administrateur
  • j'ai lancé npm cache clean avant
  • je me suis assuré que toutes les autres applications n'ont rien à voir avec node_modeules open
26
demandé sur Robin 2016-09-02 16:28:57

13 réponses

Dans ma situation, il m'a aidé:

  1. nettoyer le cache avec

    npm cache clean --force
    
  2. installer la version la plus récente du mécanisme national de prévention à l'échelle mondiale en tant qu'admin:

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

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

j'espère que cela résout votre problème. Si cela n'aide pas, essayez de changer de programme antivirus pendant un moment et répéter.

27
répondu Roman 2017-08-23 18:29:37

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

npm install --force

mise à Jour Pour certains de mes collègues, cette solution ne fonctionnait pas. Mais nous avons essayé d'utiliser fil au lieu de npm. Il fonctionne (plus rapide) sans aucun problème tous les temps

yarn install [package-name]
12
répondu sree 2017-08-29 03:48:09

j'ai été faire la même erreur et selon https://github.com/Medium/phantomjs/issues/19 il pourrait être causé par votre logiciel antivirus. J'ai désactivé mine pour la durée de l'installation et exécuté "npm install" sur cmd en tant qu'administrateur et cela a fonctionné. Espérons que cette aide.

7
répondu vmaldosan 2016-09-06 00:09:15

package.json, mais pour quelque raison que ce soit, mon node_modules/ devenu en lecture seule. La réinitialisation qui fixe cette.

6
répondu Amit Bhosle 2017-05-15 20:55:24

j'ai été faire la même chose. Je n'ai trouvé ça nulle part, mais j'ai eu l'impression que nos VM avaient tendance à changer les fichiers en lecture seule. J'ai donc ouvert package.json'propriétés de fichier et désactivée Read-only dans l'onglet "Général".

Mesures

  1. Aller à l' package.json fichier.
  2. cliquez avec le bouton droit de la souris et sélectionnez Propriétés.
  3. Dans le Général onglet Attributs section, désélectionner en lecture seule.
  4. Cliquez sur Appliquer pour appliquer la modification.
4
répondu christo8989 2017-03-10 21:07:16

j'ai eu le même problème après avoir mis à jour vers la version 5.4.2 de la npm, la npm a commencé à donner la même erreur pour la plupart des commandes de la npm. Une solution suggère de l'exécuter avec --no-optional:

ça n'a pas toujours marché.

autres suggestions pour rétrograder, Je ne voulais pas rétrograder.

j'ai suspecté qu'il y avait un problème avec l'installation, pas sûr de ce que c'est.

donc j'ai re-mis à jour mon mnp:

npm i -g npm

et a bien fonctionné depuis.

2
répondu Salimd83 2017-09-21 10:11:50

j'ai eu ce problème plusieurs fois seulement dans Windows J'ai essayer dans l'ordre habituellement.

  1. npm install --force
  2. Vérifier si node_modules est en lecture seule et supprimer si c'est
  3. Supprimer node_modules/
  4. Vérifier si un éditeur est ouvert qui pourrait avoir accès au dossier racine du projet
  5. redémarrage : (

généralement essayer l'installation npm après une de ces étapes va le résoudre.

2
répondu Srivathsa Harish Venkataramana 2018-05-17 10:23:16

npm a échoué pour moi à scandir pour:

npm install -g webpack

...qui pourrait être causé par la npm essayant de "modifier" des fichiers qui étaient potentiellement verrouillés par d'autres processus comme mentionné ici et dans quelques autres fils github. Après avoir forcé le nettoyage du cache, vérifier le cache, exécuter en tant qu'administrateur, désactiver L'AV, etc la solution qui en fait a travaillé pour moi fermait n'importe quelle chose qui pourrait être placer un verrou les dossiers (i.e. redémarrage de mon ordinateur).

j'espère que cela aidera quelqu'un qui lutte.

1
répondu kmk09k 2017-09-27 14:42:20

dans mon cas, cela n'a fonctionné que lorsque J'ai fermé VS code (l'éditeur de code) qui avait l'espace de travail ouvert (peut-être qu'il verrouillait certains fichiers ou quelque chose comme ça)

Après la fermeture de la VS code et en cours d'exécution:

npm install --force

il a travaillé avec succès

1
répondu Ahmed Elkoussy 2018-04-17 13:19:46

j'ai eu le même problème. La raison de l'erreur est des caractères non supportés dans le chemin d'accès au fichier. Remplacé le cyrillique en anglais -, il a aidé.

1
répondu Aleksey_Kopasov 2018-07-16 19:23:07

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

0
répondu UmaShankar 2018-03-06 12:21:57

il s'agit d'une erreur typique causée par un Antivirus. Il y a une solution pour les cas comme le mien, où je ne peux pas désactiver A/V (Politique de L'entreprise).

vous devez changer le polyfills.js à l'intérieur Npm package:

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

cherchez cette déclaration:

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

à l'intérieur de cette déclaration, il y a un timeout qui fait un nouveau essai en cas d'erreur. Le problème est que dans certains cas, après le délai, le fichier est toujours verrouillé par L'A/V. la solution est déchirez le délai et laissez cette déclaration 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)
}
0
répondu Bruno Guaitanele 2018-05-11 18:41:28

Pour certains, AppRoot\mnp dossier pourrait être un problème. Parfois le dossier AppRoot est marqué comme réseau partagé et donc L'Antivirus bloque la substance. Suivez le lien ci-dessous pour la solution complète.

https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

j'espère que cela aidera.

0
répondu Aryan 2018-07-20 10:11:42