Npm ERR!代码EPERM

时间:2017-08-08 01:09:22

标签: node.js angular npm angular-cli npm-install

我使用的是节点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

有谁可以解释这里发生了什么?我尝试过的事情:

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

感谢您的时间!

13 个答案:

答案 0 :(得分:7)

运行Visual Studio Code时出现此错误,因为typescript编译器会监视文件并将其锁定(请参阅https://github.com/Microsoft/vscode/issues/28593)。解决方案是在处理NPM时暂时关闭VS Code。也许你有看文件的东西?

答案 1 :(得分:3)

您使用的是私人或公司注册表吗?检查您的.npmrc文件并确保其可用。

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

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

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

答案 2 :(得分:1)

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

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

更新0:

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

更新1:

如果您仍然遇到此问题,请尝试从系统中uninstall both node and npm。然后重新启动计算机并再次安装节点和npm。

无论其

通过查看npm issues filtering by npm ERR! code EPERM,这是常见问题。如果您浏览其中一些问题,您会看到有人说切换节点版本实际上是有帮助的(我上面首先说的是这样)所以您需要使用nvm-windows并查看哪个节点版本效果最好为了你。

安装nvm-windows后,即可:

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

如果你从主要版本的npm跳过你的一些包裹   安装上一个节点版本可能不再适用于您   必须重新安装它们

答案 3 :(得分:0)

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

解决:

npm cache clean --force

&安培;

npm install [package] --force

参考:npm wiki's troubleshooting guide

答案 4 :(得分:0)

非常类似的问题,只有特定的抱怨是scandir在新应用程序的目标目录中的某个子文件夹(fsevents)上失败了。我查了一下,发现有问题的文件夹甚至不存在,因为它是npm install上跳过的可选依赖项的产物,因为我在Windows而不是Linux。

运行app build命令的脚本以这样一种方式运行,以便在新的&#34;在Windows PowerShell下运行。在普通的cmd窗口中运行时它不起作用。因此,在我的情况下,修复只是在Windows PowerShell下运行而不是在cmd窗口中运行,并且安装成功完成 - 最后,在尝试了其他一些事情之后。

答案 5 :(得分:0)

以管理员身份运行Windows命令提示符。 然后导航(&#34; cd directoryName&#34;)到你的项目文件夹do&#34; npm install&#34;。

答案 6 :(得分:0)

通常我们假设“ tns run android”命令也会设置android平台,这对我来说失败了两次,然后我按照给定的顺序运行以下两个命令来解决它:

   tns platform add android
   tns run android

答案 7 :(得分:0)

通过全局安装打字稿来解决此问题。 Angular编译器需要TypeScript> = 3.1.1和<3.3.0 将package.json中的版本更改为已安装的版本。 然后安装了npm

    npm install -g typescript
    npm info typescript version
    npm install

答案 8 :(得分:0)

这可能是最基本的解决方案,但是只有给予许可才能解决EPERM错误。

  1. 停用您计算机上的所有防病毒软件(直到完全安装)。

  2. 确保 adb.exe 文件(如果有)不在后台运行。

    为此,请打开任务管理器,转到“进程”选项卡并结束adb.exe进程。

  3. 通过运行命令

  4. 卸载不完整的expo-cli先前安装

    npm卸载-g expo-cli --save

  5. 现在,安装 expo-cli应用

    npm install -g expo-cli

在我看来,这已经达到了目的。可能也会为别人做。

干杯!

答案 9 :(得分:0)

通常是因为没有权限访问C:/ Users / ...中的文件夹 如果您在C:/ Users / ..文件夹中创建了项目,则需要获得管理权限才能对该文件夹进行更改。 以管理员身份运行代码编辑器。 这将使程序可以对该文件夹进行更改。

答案 10 :(得分:-1)

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

目前我没有install the correct npm

以外的解决方案

希望这有助于你!

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

修改 如果你找不到我建议您去Github问题页面的修复程序。

答案 11 :(得分:-1)

尝试运行命令提示符管理员。为我工作。

答案 12 :(得分:-1)

删除节点模块并运行npm cache clean --force

然后运行

npm install --save

为我工作