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:
Appréciez votre temps!
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
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?
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.
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.
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.
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 basculernvm list available
- affiche toutes les versions de nœud actuelles que vous pouvez installer localementnvm install <version number>
- installer (télécharger + installer) une version de noeud particulièrenvm use <version number>
bascule vers une version de noeud particulièrenvm help
- vous aideraSi 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
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.
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
Exécutez la commande windows Invite en tant qu'administrateur . Ensuite, naviguez ("cd directoryName") dans le dossier de votre projet "npm install".
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 .