npm - EPERM: opération non autorisée sous Windows


106

L'Iran

npm config set prefix /usr/local

Après avoir exécuté cette commande, lorsque vous essayez d'exécuter des commandes npm sur le système d'exploitation Windows, je continue à obtenir ce qui suit.

Error: EPERM: operation not permitted, mkdir 'C:\Program Files (x86)\Git\local'
at Error (native)

Ont supprimé tous les fichiers de

C:\Users\<your username>\.config\configstore\

Cela n'a pas fonctionné.

Toute suggestion ?


25
La course a npm cache clean --forcerésolu le problème pour moi.
Nuhman

Exécuter npm cache clean --force deux fois a fonctionné pour moi.
VIshal Jain

Réponses:


101

L'exécution de cette commande a été mon erreur.

npm config set prefix / usr / local

Le chemin /usr/localn'est pas pour Windows. Cette commande a changé la variable de préfixe à'C:\Program Files (x86)\Git\local'

Pour accéder à ce répertoire et y apporter des modifications, je dois exécuter ma cmd en tant qu'administrateur.

Alors j'ai fait:

  1. Exécutez cmd en tant qu'administrateur
  2. Exécuter npm config edit(vous obtiendrez l'éditeur de bloc-notes)
  3. Remplacez la prefixvariable parC:\Users\<User Name>\AppData\Roaming\npm

Fonctionne ensuite npm startdans une console normale.


4
cela a également résolu mon problème (Windows 10), merci.
AntonB

Dans mon cas, je n'ai simplement pas commenté prefix(était ;prefix...) après npm config edit, et Profit. Je ne sais pas si c'est une chose intelligente, mais cela a fonctionné.
ruffin le

dans mon cas, je n'avais aucun droit d'administrateur sur moi sur l'ordinateur portable, alors voici comment je l'ai fait- stackoverflow.com/a/57249779/10603466
Rishabh Jain

La ré-exécution en tant qu'administrateur a résolu mon problème.
Incassable

32

Cela se produit parce que Windows n'autorise pas l'utilisateur à créer un dossier dans le lecteur système. Pour résoudre ceci:

Clic-droit

Le dossier> Propriétés > Onglet Sécurité

Cliquez sur Modifier pour modifier les autorisations> Sélectionnez l'utilisateur et donnez le contrôle total à cet utilisateur.


2
Ajoutez une explication avec une réponse pour savoir comment cette réponse aide OP à résoudre le problème actuel
ρяσѕρєя K

1
Accorder à l'utilisateur l'accès pour modifier les dossiers système n'est pas une bonne idée, en particulier lorsque cela peut être facilement résolu en changeant le préfixe d'un dossier dans le répertoire de base de l'utilisateur.
atomic77

1
cela ne fonctionnera pas avec un ordinateur portable d'entreprise dont vous n'êtes pas l'administrateur système.
schlingel


26

Parfois, il suffit d'arrêter le serveur de développement avant d'installer / mettre à jour les packages.


1
Eu ce problème sur WebStorm. Je vous remercie! Cela a résolu le problème.
takasoft

1
comme c'est étrange mais vrai ... l'installation de react-dom@16.7.0-alpha.0 pour essayer les hooks de réaction n'a pas fonctionné avant d'essayer cela
Dimitar Nikovski

Pour ajouter à cela, si vous soupçonnez que ce problème est que votre serveur de développement est en cours d'exécution mais que vous ne savez pas comment l'arrêter, il suffit de déconnecter / redémarrer votre fenêtre pour toujours résoudre ce problème
Ng Sek Long

24

J'ai récemment eu le même problème lors de la mise à niveau vers la nouvelle version, la seule solution était de faire le déclassement

Pour désinstaller:

npm uninstall npm -g

Installez la version précédente:

npm install npm@5.3 -g

Essayez de mettre à jour la version dans un autre moment.


2
Pareil ici. On dirait que la mise à niveau de npm était le problème
SokIsKedu

Exactement, je suis ce sujet pour savoir quand il sera corrigé.
Leonardo Oliveira

cela l'a corrigé pour moi!
Jim

btw, j'ai mis à jour de 5.4.1 à 5.4.2 et le problème semble avoir disparu - donc je pense que le problème a peut-être été résolu. Légèrement difficile à dire car le sujet auquel Leonardo faisait référence était verrouillé.
Support Mantis

Il a travaillé pour moi aussi. Merci @LeonardoOliveira pour l'aide
Vipin

13

Dans mon cas, j'étais confronté à cette erreur car mon répertoire et son fichier ont été ouverts dans mon éditeur (code VS) pendant que j'exécutais npm install. J'ai résolu le problème en fermant mon éditeur et en exécutant npm installla ligne de commande.


10

J'ai eu le même problème, après la mise à jour de npm. Résolu le problème en réinstallant à nouveau le dernier npm avec:

npm i -g npm

mais cette fois avec cmd fonctionnant en mode administrateur.

J'ai fait tout cela parce que je soupçonnais qu'il y avait un problème avec la mise à jour, principalement des fichiers manquants.


10

J'utilise Windows 10. J'ai démarré le CMD en tant qu'administrateur et cela a résolu le problème.

Recherchez CMD, cliquez avec le bouton droit de la souris et cliquez sur Ouvrir en tant qu'administrateur.


@EtienneGautier C'est ... tout simplement pas vrai du tout. Quelle est votre solution proposée pour modifier les fichiers système? S'il y a un moyen de le faire autrement qu'avec des "autorisations d'administrateur", alors il y a quelque chose qui ne va pas avec la sécurité du système d'exploitation.
Clonkex

Hey @Clonkex, je supposais que le contexte était celui de NPM (selon la question). Mon commentaire n'est toujours pas pertinent, je le supprime. Merci pour votre avis.
Etienne Gautier

@EtienneGautier Ah d'accord.
Clonkex

7

pour moi, c'était un problème de modification des dossiers existants dans node_module, donc j'ai nuked tout le dossier et exécutez à nouveau npm install. cela fonctionne sans erreur après cela


7

J'avais une version obsolète de npm. J'ai exécuté une série de commandes pour résoudre ce problème:

npm cache clean --force

Ensuite:

npm install -g npm@latest --force

Puis (encore une fois):

npm cache clean --force

Et enfin, j'ai pu exécuter ceci (installation du projet Angular) sans les erreurs que je voyais concernant EPERM:

ng new myProject

6

J'ai eu le même problème lorsque j'ai essayé d'installer le package npm AVA. La solution pour moi était de supprimer le dossier node_modules et de forcer le nettoyage du cache npm:

rm -rf node_modules
npm cache clean --force

Je pourrais alors installer le package npm sans problème.


Oui, j'avais en quelque sorte des dossiers node_modules dans le répertoire de travail actuel. Il lançait cette exception quand j'ai essayé d'exécuter des commandes cli angulaires «ng new ..». La suppression des dossiers node_modules a aidé.
Ashokan Sivapragasam

3

Le moyen le plus simple

J'espère que je ne suis pas trop tard pour cet article, mais récemment, même moi, j'ai été touché par ce problème. Et je n'avais pas non plus de droits d'administrateur sur mon ordinateur portable.

Voici la manière la plus simple de corriger le bogue.

  1. Localisez le nom du fichier .npmrc(il sera dans C:\Users\<user name>\.npmrc)
  2. Ouvrez-le et changez le chemin de prefix=enprefix=C:\Users\<user name>\AppData\Roaming\npm

j'espère que ce sera utile.


1
J'ai eu ce problème avec WebStorm. C'est la seule chose dans la première page de Google qui a résolu mon problème. Merci Rishabh!
Leandro

heureux que cela vous ait aidé :)
Rishabh Jain

3

Si vous obtenez cette erreur dans l'invite de terminal / commandes d'un IDE, essayez de supprimer node_modules, fermez l'EDI et exécutez à npm installnouveau la commande. Le moment où l'EDI a démarré mais n'a toujours pas terminé son analyse de l'arborescence node_modules est un moment délicat, lorsque l'installation des packages peut échouer car IDE analyse toujours le contenu de node_modules.



1

J'ai eu le même problème, car j'utilisais le LAN de mon entreprise. Et je viens de courir cmd.exe npmet j'ai pu exécuter mes autres commandes sans aucune erreur après cela.

C:\Users\586656>cmd.exe npm
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

Partager simplement ceci, car cela peut aider d'autres personnes qui essaient de le faire dans leur réseau local de bureau. Je vous remercie.


1

Exécutez simplement cmd en tant qu'administrateur. supprimez l'ancien dossier node_modules et exécutez à nouveau npm install.


1
L'installation de npm devrait fonctionner sans démarrer CMD en tant qu'administrateur. Il ne fonctionne pas sur cmd normal (non administrateur) est également un problème.
Lahar Shah

1

Trouvez cette commande npm cache cleancomme une solution à ces erreurs de manière simple et rapide!


1

J'ai mis à jour la version de mon nœud à 8.9.4 et ai exécuté à nouveau la commande d'installation nécessaire à partir de l'invite de commande de l'administrateur. Cela a fonctionné pour moi!


1

Un redémarrage de mon ordinateur portable puis

npm install

travaillé pour moi!


1

Cela m'est arrivé depuis que le dossier / fichier a été verrouillé par un autre processus. Utilisé un outil (LockHunter) pour terminer ce processus et il a recommencé à fonctionner (raison possible).


1

Essayez npm i -g npm. NPM version 6.9 est un travail pour moi.


1

Windows 10,

L'exécution de l'IDE (dans mon cas IntelliJ) en mode administrateur et l'exécution de l'installation de npm résout le problème.

Si aucun IDE, exécutez CMD en mode administrateur et essayez d'exécuter l'installation de npm


1

J'utilisais le serveur create-react-app. Il suffit d'arrêter le serveur et tout fonctionnait très bien.


1
Cela a résolu mon problème! Je pense que vous devriez essayer ceci avant d'essayer les autres. Puisque les autres réponses demandent plus d'efforts.
Irfandy Jip


0

L'exécution des commandes npm dans Windows Powershell a résolu mon problème.


Je n'ai pas besoin de modifier les fichiers de configuration locaux ou autres
Sai Prasad

0

Même chose pour moi, ma solution était de fermer le studio Android, AVD Manager, Visual Studio et de le réinstaller. J'ai exécuté cette commande pour mettre à jour mon expo cli:

npm install -g expo-cli

0

Apparemment, un logiciel antivirus peut également provoquer cette erreur. Dans mon cas, la protection contre les ransomwares de Windows Security protégeait mes dossiers utilisateur, ce qui a causé cette erreur.


0

Pour moi, c'était un problème avec le fichier .npmrc. Qui est présent dans C: \ Users \ myname.npmrc D'une manière ou d'une autre, le contenu du fichier .npmrc a été modifié. J'ai changé le contenu en comparant avec l'ordinateur portable de mes collègues. Donc ça a résolu.

Pour référence, j'ajoute également le contenu du fichier .npmrc

 ;;;;
 ;npm userconfig file
 ;this is a simple ini-formatted file
 ;lines that start with semi-colons are comments.
 ;read `npm help config` for help on the various options
 ;;;;

 //registry.npmjs.org/:_authToken=95632bcf-3056-4538-b57d-38426736e3a0
 scope=true
 @true:registry=https://registry.npmjs.org/

 ;;;;
 ;all options with default values
 ;;;;
 ;access=null

 ;allow-same-version=false

 ;always-auth=false

 ;also=null

 ;audit=true

 ;audit-level=low

 ;auth-type=legacy

 ;before=null

 ;bin-links=true

 ;browser=null

 ;ca=null

 ;cafile=undefined

 ;cache=C:\Users\myname\AppData\Roaming\npm-cache

 ;cache-lock-stale=60000

 ;cache-lock-retries=10

 ;cache-lock-wait=10000

 ;cache-max=null

 ;cache-min=10

 ;cert=null

 ;cidr=null

 ;color=true

 ;depth=null

 ;description=true

 ;dev=false

 ;dry-run=false

 ;editor=notepad.exe

 ;engine-strict=false

 ;force=false

 ;fetch-retries=2

 ;fetch-retry-factor=10

 ;fetch-retry-mintimeout=10000

 ;fetch-retry-maxtimeout=60000

 ;git=git

 ;git-tag-version=true

 ;commit-hooks=true

 ;global=false

 ;globalconfig=C:\Users\myname\AppData\Roaming\npm\etc\npmrc

 ;global-style=false

 ;group=0

 ;ham-it-up=false

 ;heading=npm

 ;if-present=false

 ;ignore-prepublish=false

 ;ignore-scripts=false

 ;init-module=C:\Users\myname\.npm-init.js

 ;init-author-name=

 ;init-author-email=

 ;init-author-url=

 ;init-version=1.0.0

 ;init-license=ISC

 ;json=false

 ;key=null

 ;legacy-bundling=false

 ;link=false

 ;local-address=undefined

 ;loglevel=notice

 ;logs-max=10

 ;long=false

 ;maxsockets=50

 ;message=%s

 ;metrics-registry=null

 ;node-options=null

 ;node-version=10.15.2

 ;offline=false

 ;onload-script=null

 ;only=null

 ;optional=true

 ;otp=null

 ;package-lock=true

 ;package-lock-only=false

 ;parseable=false

 ;prefer-offline=false

 ;prefer-online=false

 ;prefix=C:\Program Files\nodejs

 ;preid=

 ;production=false

 ;progress=true

 ;proxy=null

 ;https-proxy=null

 ;noproxy=null

 ;user-agent=npm/{npm-version} node/{node-version} {platform} {arch}

 ;read-only=false

 ;rebuild-bundle=true

 ;registry=https://registry.npmjs.org/

 ;rollback=true

 ;save=true

 ;save-bundle=false

 ;save-dev=false

 ;save-exact=false

 ;save-optional=false

 ;save-prefix=^

 ;save-prod=false

 ;scope=

 ;script-shell=null

 ;scripts-prepend-node-path=warn-only

 ;searchopts=

 ;searchexclude=null

 ;searchlimit=20

 ;searchstaleness=900

 ;send-metrics=false

 ;shell=C:\windows\system32\cmd.exe

 ;shrinkwrap=true

 ;sign-git-commit=false

 ;sign-git-tag=false

 ;sso-poll-frequency=500

 ;sso-type=oauth

 ;strict-ssl=true

 ;tag=latest

 ;tag-version-prefix=v

 ;timing=false

 ;tmp=C:\Users\myname\AppData\Local\Temp

 ;unicode=false

 ;unsafe-perm=true

 ;update-notifier=true

 ;usage=false

 ;user=0

 ;userconfig=C:\Users\myname\.npmrc

 ;umask=0

 ;version=false

 ;versions=false

 ;viewer=browser

 ;_exit=true

 ;globalignorefile=C:\Users\myname\AppData\Roaming\npm\etc\npmignore

0

Pour ceux qui essaient de mettre à jour la configuration

Si vous rencontrez des problèmes pour mettre à jour votre configuration npm, essayez plutôt de l'exécuter en utilisant l' indicateur -g . Cela a résolu le problème sur Win 10 pour moi après avoir essayé tout le reste.

npm config edit -g

Je suis capable de mettre à jour la configuration et les changements sont reflétés partout. Cela peut être dû à l'exécution de npm dans une étendue organisationnelle.


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.