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 ?

Lahar Shah
la source
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.

Lahar Shah
la source
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.

RatneZ
la source
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.

Ezra Obiwale
la source
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 [email protected] 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.

Léonard Oliveira
la source
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.

Shashank Rawat
la source
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.

Salimd83
la source
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.

DIANGELISJ
la source
@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

Sonic Soul
la source
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
LatentDenis
la source
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.

Liran H
la source
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.

Rishabh Jain
la source
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.

Kote Isaev
la source
3

Le redémarrage de VsCode l'a résolu pour moi.

Légendes
la source
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.

Sibeesh Venu
la source
1

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

Rahul Khunt
la source
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!

Hanny Setiawan
la source
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!

Rahul Sharma
la source
1

Un redémarrage de mon ordinateur portable puis

npm install

travaillé pour moi!

Chau Nguyen
la source
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).

Hoummous
la source
1

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

Karlos
la source
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

Sasi Kumar M
la source
1

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

Safran
la source
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.

Sai Prasad
la source
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
Loitd
la source
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.

Orrd
la source
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
Thilak Raj
la source
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.

factorypolaris
la source
0

npm install cross-env Essayez ceci, cela a fonctionné pour moi.

Mohit Poddar
la source