来自 chokidar 的错误(C:\):错误:EBUSY:资源正忙或被锁定,lstat 'C:\DumpStack.log.tmp'。

94

在使用Angular并进行ng serve时,我遇到了以下错误:

Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\DumpStack.log.tmp'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\pagefile.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\swapfile.sys'

27
我遇到了类似的问题,原因是有人添加了一个npm包,而我在拉取他们的更改后没有运行npm install - stubbzarelli
43
为什么npm/chokidar/任何程序都要与我的交换文件进行操作?这很令人担忧。 - Paul
@stubbzarelli +1 你的评论帮助我解决了这个问题。谢谢。 - velsorange
3
@Paul 是正确的,即使这是一个诚实的错误,这也是一个非常明显的红旗。 - Pieter De Bie
6
chokidar是一个文件监视器,没有理由去监视根目录文件,更别说像那些系统文件一样的东西了。所有归咎于VS Code的回答都是错误的,如果问我,似乎chokidar出了点问题。我在命令行上运行像webpack serve这样的东西时就会遇到这个问题,没有任何编辑器参与--但正如许多答案所述,这似乎是其他错误的副作用。 - McGuireV10
显示剩余4条评论
34个回答

72

每当我在使用VSCode并添加类似于组件的东西时,就会出现这个问题:

@Output() somename = new EventEmitter();

...我让VSCode自动导入支持模块。但是,VSCode并没有将EventEmitter添加到现有的@angular/core中,而是添加了一个新的导入到protractor,从而导致错误。

如果您遇到此错误并且无法记住最后更改的位置,请尝试在您的代码中搜索from 'protractor';


2
你刚刚救了我! - Jorgeblom
4
提醒一下,我在这篇文章中遇到了来自 chokidar(C盘)的错误:“Error: EBUSY:resource busy or locked,lstat 'something.sys'”,原因是我允许 VSCode 为我导入一个包。如果你也允许 VSCode 为你导入任何包,请回去检查你所有的导入——感谢! - Jason
1
谢谢!在我的情况下,在将HTML更新为pug后,留下了一个HTML样式注释。 - Zugor
1
爱你三千,我已经多次下载了node_module。 - Atul Sharma
1
在哪里添加这个?是在哪个目录下? - makoz
显示剩余3条评论

32

这可能发生在多种不同的构建错误之后。出于某种原因,构建摘要未能报告原始错误并报告了这个错误。

(顺便说一下,我看到OP正在使用Angular和ng serve; 我正在使用npm start在React中获得这个结果。所以我猜它可能发生在使用任何工具链的VS Code中。)

我在VS Code终端中看到了这个输出:

i 「wdm」: Failed to compile.
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\hiberfil.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\pagefile.sys'
Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat 'C:\swapfile.sys'

在这个页面和其他地方寻找答案后,我发现没有任何对我有用的内容。

但是当我在VS Code终端中向后滚动时,我发现了这个构建错误:

ERROR in ./Components/ServiceBooking/ServiceBooking/ServiceBooking.tsx
Module not found: Error: Can't resolve 'components/Common/BookingComponents/BookingTypeSelector/BookingTypeSelector' in [...]

这是由VS Code自动添加的导入中的一个大小写错误。我不知道为什么,但有时VS Code会这样做。也许我们可以在这个项目中进行一些调整,以帮助VS Code避免这样做。总之,这是一个错误,一旦我通过将导入中的"components"更改为"Components"来修复它,关于hiberfil.sys、pagefile.sys和swapfile.sys的二次错误就消失了。

故事的寓意:要警惕构建摘要掩盖构建错误。每当遇到奇怪的构建错误时,首先回滚详细的构建输出,确保你正在追踪正确的错误(原始错误,而不是像这种二次错误)。


在滚动了大约一千行之后,我找到了这个错误,谢谢! - Baltasar Solanilla

21

只需输入npm install命令,它是一个文件查看器,会提示依赖项未正确更新。如果不读取数千个隐藏注释,我永远不会知道。

解决方案:

npm install

这再次强调了已经存在的答案。 - Markus Deibel
1
这对我有用,排名较高的答案在处理我没有使用的特定模块。 - johnbr

21

检查package.json中缺失的依赖项

我正在使用Vue.js。 我尝试运行一个项目,但出现了这个错误。 这个问题是因为另一个开发者使用了全局依赖项,并且它没有被包含在我的node_modules文件夹中。


1
我在一个React项目中遇到了同样的错误,原因是缺少package.json中的依赖项。 - Enes Kirimi
1
如果在创建一个新的Vue.js项目并通过Vue UI安装了2个依赖和2个插件后,就出现了这种情况怎么办?这完全是本地操作,但即使是在Sass-loader、Node-sass、Vuex和Vue-router的最新设置和安装后也会出现这个错误。我似乎找不到答案。 - BrOsCoRe
1
确认一下,npm install 解决了我的 Angular 11 应用程序问题。 - Janatbek Orozaly

15

按照以下步骤进行操作:

  1. 删除"node_modules"文件夹
  2. 运行npm install
  3. 运行npm cache clean

4
这可能是摆脱问题最稳妥的方法。 - johnbr

6
如果您正在使用 polyfill,那么如果您激活了以下来自 src/polyfills.ts 的 polyfill,则会出现此错误。
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js';  // Run `npm install --save classlist.js`.

...并且没有运行相应的npm install命令:

npm install --save classlist.js

如果您将core-js从v2更新到v3,但在您的polyfills文件中仍然有v2格式的导入。 - rooby

4

我在VueJs (2)中遇到了这个问题- 安装了一个模块,然后卸载了它 (npm uninstall <module_name>),但忘记从 .vue 文件中删除 "import <module_name>"。很傻,但就是这样。


对我来说,React的情况完全一样。 - zehawk

3
在使用@Output()时,请移除自动导入语句:import { EventEmitter } from 'protractor';,并且从现有的导入中包含EventEmitterimport { Component, OnInit, EventEmitter } from '@angular/core';

2
我在安装Material UI设计时遇到了错误,但在安装了npm软件包之后,现在已经没有问题了。
添加:
npm i

谢谢!


2

我曾经也遇到过同样的问题,通过在package.json中设置解决了问题。

"browser": {
  "http": false
}

如何在package.json中添加内容
{
  "name": "App Name",
  "version": "0.0.0",
  "scripts": {
     // --------
  },
  "dependencies": {
     // --------
  },
  "devDependencies": {
     // --------
  },
  "browser": {
    "http": false
  }
}

如果有人知道为什么需要添加它以及添加它会发生什么,请添加一些描述以使阅读更加合理。谢谢。

1
我的代码运行了几个月都很好,然后我遇到了同样的问题,但是这个解决了它。 - Ryan Rife

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接