【问题标题】:Npm ERR! code EPERMNpm 错误!代码 EPERM
【发布时间】:2026-01-30 12:10:01
【问题描述】:

我正在使用节点 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 文件夹不是只读的

珍惜你的时间!

【问题讨论】:

  • 你能npm install 在新创建的cli 项目上吗?您是否尝试在不同的路径上创建应用程序并在该路径上运行 npm install
  • npm install 在新创建的 CLI 项目上按预期工作。我在不同的路径上执行了相同的过程,一切正常,直到我运行 npm install bootstrap --save。
  • 那是有线的。我只有 node 7.8npm 5.3 运行 windows 7 并且无法复制您的问题。我能想到的只有两件事是尝试另一个更高节点的版本,如果不起作用,请尝试yarn。顺便说一句,您是否尝试过查看这个alastaircrabtree.com/…
  • 命令 lstat 不应该在 Windows 上可用(参见SO-answer)。 npm err 末尾提到的日志文件呢?
  • 谢谢昆切维奇!按照您提供的链接中的步骤操作就可以了!

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


【解决方案1】:

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

【讨论】:

  • 如果我重新启动我的机器,立即打开命令提示符并安装任何我得到错误的东西。
  • 我也遇到过类似的问题。项目中似乎 Parcel 锁定了文件。
【解决方案2】:

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

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

如果生成了任何 package-lock.json,请检查您的文件夹。你可以删除那个重新安装。

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

【讨论】:

  • 谢谢阿尼鲁达。我删除了我的 package-lock.json 文件,重新安装了所有东西,问题就消失了。我以前从未见过 package-lock.json。是什么产生了它,为什么会在那里?
  • 实际上上面的节点 7.x.x 正在生成 package-lock.json 来保存和保存您的依赖项版本并锁定它我想。他们有这方面的文件,但我从未详细说明。
  • 感谢@Aniruddha。我使用私人注册表(verdaccio),我遇到了同样的问题。 .npmrc 文件位置在哪里?
  • 通常位于您的根文件夹中。像 Users/{username} ,在 windows 中类似
【解决方案3】:

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

解决方法:

npm cache clean --force

&

npm install [package] --force

参考:npm wiki's troubleshooting guide

【讨论】:

    【解决方案4】:

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

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

    更新 0:

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

    更新 1:

    如果您仍然遇到此问题,请从您的系统完全尝试uninstall both node and npm。然后重新启动机器并再次安装 node 和 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 跳转到你的一些包 与以前的节点版本一起安装可能不再工作,所以你 必须重新安装它们

    【讨论】:

    • 当节点命令提示符是唯一运行的东西时会发生这种情况。我也试过升级到高版本和低版本的节点,但我得到了同样的错误。
    • @MatthewMeppiel 你检查过这个问题github.com/npm/npm/issues/10826 吗?
    【解决方案5】:

    以管理员身份运行 windows 命令提示符。 然后导航(“cd directoryName”)到您的项目文件夹执行“npm install”。

    【讨论】:

      【解决方案6】:

      通过全局安装 typescript 解决了这个问题。 Angular 编译器需要 TypeScript >=3.1.1 和

          npm install -g typescript
          npm info typescript version
          npm install
      

      【讨论】:

        【解决方案7】:

        我在使用 VS CODE 终端时遇到了同样的问题,您可以以管理员或 root 身份打开 cmd 或 bash,然后只需 npm install (your package)

        【讨论】:

          【解决方案8】:

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

          在 Windows PowerShell 下运行“ng new”时,运行应用程序构建命令的脚本会以这种方式进行补偿。在普通 cmd 窗口中运行时不起作用。因此,在我的情况下,修复只是在 Windows PowerShell 下而不是在 cmd 窗口中运行“ng new”,并且安装成功完成 - 最后,在尝试了其他几件事之后。

          【讨论】:

            【解决方案9】:

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

               tns platform add android
               tns run android
            

            【讨论】:

              【解决方案10】:

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

              【讨论】:

              • 之前已经给出了同样的答案。
              【解决方案11】:

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

              【讨论】:

                【解决方案12】:

                角度应用的特定解决方案

                Turn off your angular compiler (ie. ng serve) & again try to install the package

                每次都为我工作。

                【讨论】:

                  【解决方案13】:

                  我在安装 react-rating 包时遇到了这个问题。我刚从 npm 切换到 yarn 就解决了。

                  这意味着而不是 npm install --save 反应评级 我用了 纱线添加反应评级

                  【讨论】:

                    【解决方案14】:

                    如果你在 gatsby.js 中有它。我遇到了超时问题。这修复了它,你应该将它添加到环境中:

                    CONNECTION_TIMEOUT=600000
                    STALL_RETRY_LIMIT=10
                    STALL_TIMEOUT=60000
                    GATSBY_CONCURRENT_DOWNLOAD=1
                    

                    【讨论】:

                      【解决方案15】:

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

                      目前我除了install the correct npm之外没有其他解决方案

                      希望这对您有所帮助!

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

                      编辑 如果您找不到修复程序,我建议您转到 Github 问题页面。

                      【讨论】:

                        【解决方案16】:

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

                        1. 停用您 PC 上的任何防病毒软件(直到完成安装)。

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

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

                        3. 卸载通过运行命令完成以前安装的 expo-cli

                          npm 卸载 -g expo-cli --save

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

                          npm install -g expo-cli

                        在我的情况下,这已经成功了。也可以为别人做。

                        干杯!

                        【讨论】:

                          【解决方案17】:

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

                          然后运行,

                          npm install --save

                          为我工作

                          【讨论】:

                            最近更新 更多