npm ERR! 代码EPERM

我使用节点v6.11.2,npm v5.3.0和angular / cli v1.2.7。

我突然收到以下错误消息为我的npm安装的大多数。 以前从未见过…

mmeppiel@MC-LT-MMEPPIEL MINGW64 ~/Desktop/Angular Solutions/my-app (master) $ npm install --save bootstrap@4.0.0-alpha.6 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 

任何人都可以解释这里发生了什么? 我试过的东西:

  • 以pipe理员身份运行Git Bash
  • closures我的防火墙和防病毒保护
  • 运行npmcaching清理
  • 手动删除AppData \ Roaming \ npm-cache的比赛
  • 通过控制面板卸载节点并重新安装
  • 给每个人完整的权限C:\ Program Files \ nodejs
  • 重新安装CLI
  • 重新启动我的电脑(不能伤害?)
  • 确保node_modules文件夹不是只读的

感谢您的时间!

您是否使用任何私人或公司的registry。 检查你的.npmrc文件并确保它可用。

如果您在公司环境中,请确保代理不是问题。

检查你的文件夹是否生成了package-lock.json。 你可以删除重新安装。

我毫不怀疑,但节点6.xx与npm 5.xx可能是一个问题,因为节点7.xx与5.xx兼容。通常节点6.xx与npm 4.xx兼容

运行Visual Studio代码时出现此错误,因为打字稿编译器监视文件并将其locking(请参阅https://github.com/Microsoft/vscode/issues/28593 )。 解决scheme是在处理NPM时暂时closuresVS Code。 也许你有东西看文件?

这可能有助于https://alastaircrabtree.com/fixing-intermittant-eperm-operation-not-permitted-on-npm-install/

也可以尝试使用不同的node版本,在Windows上升级/切换node的最佳方式是使用nvm-windows,这样可以在开发机器上安装多个可以切换的节点版本。

更新0:

当你处理这样的问题时,你必须确保没有任何东西像你的代码编辑器那样locking我们的node_modules文件夹(例如VS Code等),或者你可能正在另一个控制台窗口中运行npm start

更新1:

如果仍然遇到问题,请尝试从系统中卸载节点和npm 。 然后重新启动您的机器并再次安装节点和npm。

然而

这是接缝,这是常见的问题,通过查看NPM问题过滤npm ERR! code EPERM npm ERR! code EPERM 。 如果你浏览一些这些问题,你会看到一些人说切换节点版本实际上是帮助的(刚才我刚才说的),所以你需要使用nvm-windows来查看哪些节点版本最适合你。

一旦你安装了nvm-windows,你可以这样做:

  • nvm list – 显示您可以切换到的所有本地节点版本
  • nvm list available – 显示您可以在本地安装的所有实际节点版本
  • nvm install <version number> – 安装(下载+安装)一个特定的节点版本
  • nvm use <version number>切换到特定的节点版本
  • nvm help – 会给你帮助

如果你从npm的主要版本跳转,那么你使用以前的节点版本安装的一些软件包可能不再工作,所以你必须重新安装它们

我遇到同样的问题,即使使用Node v8.6.0npm v5.4.2

解决:

npm cache clean --force

npm install [package] --force

参考: npm wiki的故障排除指南 。

问题是您的操作系统的节点版本不正确。 它试图获取Windows上不存在的lstat(一个POSIX系统调用)。

目前我没有install the correct npm以外的解决scheme

希望这对你有帮助!

https://linux.die.net/man/2/lstat

编辑如果你找不到修复,我会build议你去Github发行页面。