web-dev-qa-db-fra.com

Npm ERR! code EPERM

J'utilise les nœuds v6.11.2, npm v5.3.0 et angular/cli v1.2.7. 

Je reçois soudainement le message d'erreur suivant pour la majorité de mes installations npm. Jamais vu auparavant ...

mmeppiel@MC-LT-MMEPPIEL MINGW64 ~/Desktop/Angular Solutions/my-app (master)
$ npm install --save [email protected] font-awesome
npm ERR! path C:\Users\mmeppiel\Desktop\Angular Solutions\my-app\node_modules\fs                            events\node_modules
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall lstat
npm ERR! Error: EPERM: operation not permitted, lstat 'C:\Users\mmeppiel\Desktop                            \Angular Solutions\my-app\node_modules\fsevents\node_modules'
npm ERR!     at Error (native)
npm ERR!  { Error: EPERM: operation not permitted, lstat 'C:\Users\mmeppiel\Desk                            top\Angular Solutions\my-app\node_modules\fsevents\node_modules'
npm ERR!     at Error (native)
npm ERR!   stack: 'Error: EPERM: operation not permitted, lstat \'C:\\Users\\mme                            ppiel\\Desktop\\Angular Solutions\\my-app\\node_modules\\fsevents\\node_modules\                            '\n    at Error (native)',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'lstat',
npm ERR!   path: 'C:\\Users\\mmeppiel\\Desktop\\Angular Solutions\\my-app\\node_                            modules\\fsevents\\node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\mmeppiel\AppData\Roaming\npm-cache\_logs\2017-08-08T00_56_                            59_442Z-debug.log

Quelqu'un peut-il expliquer ce qui se passe ici? Choses que j'ai essayées:

  • Exécuter Git Bash en tant qu'administrateur
  • Désactiver mon pare-feu et mes protections anti-virus
  • Exécution du cache npm en mode minimal
  • Supprimer manuellement le concours de AppData\Roaming\npm-cache
  • Désinstallation du noeud via le Panneau de configuration et réinstallation
  • A donné à chacun des autorisations complètes sur C:\Program Files\nodejs
  • Réinstallé la CLI
  • Redémarrage de mon ordinateur (ça ne fait pas mal?)
  • Assurez-vous que le dossier node_modules n'est pas en lecture seule

Appréciez votre temps!

12
Matthew Meppiel

Utilisez-vous un registre privé ou d'entreprise? vérifiez votre fichier .npmrc et assurez-vous qu'il est disponible.

si vous êtes dans un environnement d'entreprise, assurez-vous que le proxy n'est pas un problème.

vérifiez dans votre dossier si un package-lock.json est généré. vous pouvez supprimer cette installation.

J'ai peu de doute, mais le nœud 6.x.x avec npm 5.x.x pourrait poser problème, car le nœud 7.x.x est compatible avec la version 5.x.x. Et normalement, le noeud 6.x.x est compatible avec npm 4.x.x

3
Aniruddha Das

Je reçois cette erreur lors de l'exécution de Visual Studio Code car le compilateur TypeScript surveille les fichiers et les verrouille (voir https://github.com/Microsoft/vscode/issues/28593 ). La solution consiste à fermer temporairement VS Code lorsqu'il traite avec NPM. Peut-être avez-vous quelque chose à regarder des fichiers?

7
James Ehly

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

Essayez également de jouer avec différentes versions de node. Le meilleur moyen de mettre à jour/changer votre node sous Windows consiste à utiliser nvm-windows de cette façon, vous pouvez avoir plusieurs versions de nœud installées sur votre ordinateur dev que vous pouvez basculer. 

MISE À JOUR 0:

Lorsque vous faites face à de tels problèmes, vous devez vous assurer que rien ne verrouille notre dossier node_modules comme votre éditeur de code (par exemple, VS Code, ect) ou que vous exécutiez peut-être npm start dans une autre fenêtre de la console, etc.

MISE À JOUR 1:

Si vous rencontrez toujours le problème, essayez complètement de désinstaller à la fois le noeud et npm de votre système. Puis redémarrez votre machine et installez à nouveau node et npm. 

TOUTEFOIS

Il semble que ce soit un problème courant en examinant les problèmes de npm filtrant par npm ERR! code EPERM . Si vous parcourez certaines de ces questions, vous verrez que certaines personnes disent que changer de version de nœud est en fait une aide (comme je le disais tout d'abord au début), vous devez donc jouer avec nvm-windows et voir quelle version de nœud est travailler le mieux pour vous. 

Une fois que vous avez installé nvm-windows , vous pouvez effectuer les tâches suivantes:

  • nvm list - affiche toutes les versions de vos nœuds locaux vers lesquelles vous pouvez basculer
  • nvm list available - affiche toutes les versions de nœud actuelles que vous pouvez installer localement
  • nvm install <version number> - installer (télécharger + installer) une version de noeud particulière
  • nvm use <version number> bascule vers une version de noeud particulière
  • nvm help - vous aidera

Si vous passez d'une version majeure de npm à certains de vos paquets, vous installé avec une version de noeud précédente peut ne plus fonctionner, vous doivent être les réinstaller

1
Kuncevič

Problème très similaire, seule la plainte spécifique était que scandir échouait sur un certain sous-dossier (fsevents) dans le répertoire cible de la nouvelle application. J'ai vérifié et constaté que le dossier en question n'existait même pas car il s'agissait du produit d'une dépendance facultative qui avait été ignorée lors de l'installation de npm car j'étais sous Windows et non sous Linux.

Le script exécutant la commande de génération de l'application s'exécute de manière à compenser cela lorsque "ng new" est exécuté sous Windows PowerShell. Cela ne fonctionne pas lorsqu'il est exécuté dans une fenêtre cmd ordinaire. Donc, dans mon cas, le correctif consistait simplement à exécuter "ng new sous Windows PowerShell au lieu de dans une fenêtre cmd et l'installation s'est terminée avec succès - enfin, après avoir essayé plusieurs autres choses.

0
Matt Campbell

Normalement, nous supposons que la commande "tns run Android" va également configurer la plateforme Android, qui a échoué pour moi deux fois, puis je l'ai résolue en exécutant les deux commandes suivantes dans l'ordre indiqué:

   tns platform add Android
   tns run Android
0
Mukhtiar Zamin

Exécutez la commande windows Invite en tant qu'administrateur . Ensuite, naviguez ("cd directoryName") dans le dossier de votre projet "npm install".

0
JUSTIN JOSEPH

J'ai le même problème, même en utilisant Node v8.6.0 et npm v5.4.2.

Résolu avec:

npm cache clean --force

Et

npm install [package] --force

Référence: Guide de dépannage de npm wiki .

0
ranieribt