【问题标题】:Error: EBUSY: resource busy or locked, rmdir错误:EBUSY:资源繁忙或锁定,rmdir
【发布时间】:2019-08-08 07:40:14
【问题描述】:

在windows中执行以下步骤后出现错误:

  1. 打开一个终端:npm run start:dev
  2. 打开另一个终端:ng build --watch

但是,它可以通过使用上述命令在 Mac 中运行。 package.json 的部分配置是:

"scripts": {
"ng": "ng",
"start:dev:prod": "ng build --prod && cd dist/ && node static/server.js",
"start": "node static/server.js",
"build:prod": "ng build --prod",
"test": "ng test --code-coverage",
"lint": "ng lint",
"e2e": "ng e2e",
"start:dev": "npm run build & cd dist/ & SET APP_ENV=dev & node static/server.js",
"build": "ng build"
},

错误日志:

Error: EBUSY: resource busy or locked, rmdir 'C:\AngularProject\dist'
Error: EBUSY: resource busy or locked, rmdir 'C:\Spring-Intern-Projects\wdpr-accounting-reference-client\dist'
at Object.rmdirSync (fs.js:701:3)

【问题讨论】:

  • 您可以尝试的最简单的方法是关闭所有终端以摆脱阻止程序并重试。
  • 是的。停止 AVG,它现在运行良好。
  • 因为我是 cd'd 进入我正在运行命令的目录,所以该目录将永远忙碌。我无法在没有打开 shell 的情况下运行命令。

标签: node.js angular5


【解决方案1】:

如果上述所有解决方案都不起作用并且您使用的是 Windows PC,就像我的情况一样,最简单的做法是:

  1. windows键加上键盘上的R打开运行命令框并输入

    resmon.exe

  2. 点击确定打开资源监视器

  3. 在监视器中,导航到 CPU 选项卡
  4. 在搜索框中的Associated Handles下,将路径复制到相关文件或文件夹并粘贴到那里
  5. 点击搜索图标
  6. 您应该能够看到所有使用该文件或文件夹的程序
  7. 右键单击每个并结束进程

现在,继续您尝试对文件或文件夹执行的操作。就我而言,我在使用 react-create-app via npm 时遇到了问题。 更多信息在这里#117908

我只是希望它对某人有所帮助。

【讨论】:

  • 我的问题是一些锁定的缓存文件夹。我用你的方法杀死了锁定它们的 git 进程并删除了文件夹。我不得不等待几秒钟,控制台看起来像是卡住了,直到它在一段时间后自行恢复 npm 安装过程。
  • @OmerLeshem 我很高兴它有帮助。看起来这些问题与 Windows 更相关。我没有在 Mac OS 上体验过。
【解决方案2】:

您看到此错误的主要原因是程序出于某种原因锁定了文件夹。在一次关闭一个程序的同时测试命令可以帮助解决问题并让您知道哪个程序是罪魁祸首。

人们遇到的一个问题是 Windows 上的反恶意软件。您可以在此处阅读此主题:

https://github.com/npm/npm/issues/13461

如果链接在这里停止工作是最受好评的评论:

在 Windows 10 64 位操作系统中,我已通过卸载解决了此问题 反恶意软件。

触发此错误的另一种方法是,如果您正在运行npm run [command],同时 cd'd 进入其更改的目录。这发生在我身上,我关闭了每个程序,但它没有工作,但意识到我在 dist 文件夹中,需要删除和重建。这触发了 PowerShell 中的Error: EBUSY: resource busy or locked, rmdir 错误,并且每次都可以重现。

【讨论】:

  • 我通过将目录更改为我试图删除的文件夹以外的其他内容解决了我的问题。
【解决方案3】:

对于 Angular VsCode 用户:

检查您要删除的目录/文件夹是否在终端中打开。可能有多个终端实例,因此请检查您是否有任何终端实例.

更改在终端中打开的目录或终止该终端实例将解决问题。

【讨论】:

    【解决方案4】:

    由于缓存导致的这个问题,在终端中运行以下命令

    npm cache verify
    

    【讨论】:

      【解决方案5】:

      我能够解决我杀死 npm 和 Java 进程的问题。我在运行我的 Cordova run android 时遇到问题,因此杀死 npm 和 java 进程帮助我解决了这个问题。

      【讨论】:

        【解决方案6】:

        这是通过覆盖一些 npm 来发生的,因此它会锁定您的源

        解决方案(我所做的 npm cache clean 也不起作用,然后我删除了 package-lock 开始工作)

        1. 只需删除 package-lock

        2. 清理缓存。

          npm cache clean

          也清除缓存(可选)

        3. npm install --cache

        【讨论】:

        • 应该是公认的答案。像魅力一样解决了我的问题。
        【解决方案7】:

        我遇到了同样的问题并找到了原因 - 项目位于同步和锁定 node_modules 文件夹的保管箱文件夹中。 我关闭了保管箱,它起作用了。

        【讨论】:

          【解决方案8】:

          您可以删除以下文件夹,然后再试一次。为我工作。

          C:\Users\{username}\AppData\Local\Temp\npm-xxxxxxxxxx\
          

          【讨论】:

            【解决方案9】:

            有时(在其他情况下)它只是一个网络问题,我只是在使用 VPN 做什么,以及它的工作。

            【讨论】:

              【解决方案10】:

              在我的情况下,android studio 和 VSCode 是打开的。 关闭 android studio 有帮助。

              【讨论】:

                【解决方案11】:

                解决这个问题的简单方法是:

                1. 删除 Nuxt.js 项目上的 /dist 目录。
                2. 再次运行npm run generatenpm run build

                【讨论】:

                  【解决方案12】:

                  node_modules 文件夹内容可能会造成驱动器上的坏扇区,为此驱动器使用碎片整理和优化软件可以减少此类问题。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2021-12-21
                    • 1970-01-01
                    • 1970-01-01
                    • 2022-01-18
                    • 2019-01-03
                    • 2021-08-21
                    • 2020-09-08
                    相关资源
                    最近更新 更多