ngcc中出现ERROR,进程ID为xxxx已在运行。

67
当我尝试在我的项目中运行"ng serve"命令时,它产生了以下错误。
错误:ngcc已经在进程ID为xxxx的进程中运行。

22
停止服务并删除此文件 node_modules/@angular/compiler-cli/ngcc/ngcc_lock_file - Jacopo Sciampi
1
删除ngcc_lock_file解决了问题。 - Shyam Narayan
我第一次启动 Angular 9 应用程序时也遇到了这个问题。或者更好的方法是,我以“非标准方式”停止了服务。 - Jacopo Sciampi
4
文件名为 __ngcc_lock_file__,删除它也解决了我的问题。 - rlv-dan
1
https://dev59.com/6VIH5IYBdhLWcg3wHZRA#61122898 - azerafati
显示剩余2条评论
4个回答

211

尝试删除路径下的ngcc_lock_file

node_modules/@angular/compiler-cli/ngcc/ngcc_lock_file

或者对于Angular 9,需要删除的锁定文件是:

node_modules/@angular/compiler-cli/ngcc/__ngcc_lock_file__

我曾经也遇到过同样的问题,然后删除了那个文件,这样问题就解决了。


25
在Angular 9中,文件名为 - __ngcc_lock_file__ - Akshay
@Akshay 这并没有太大的区别,因为它是该位置唯一的文件。可以理解它是哪个文件。 - Compiler v2
这个解决方案在编译Angular Material组件时对我很有帮助。 - m.yuki
我的问题是,如果我正在运行 vscode 并尝试进行 npm 构建。 - Manny
唉,这并不总是有用的:有时即使除了当前的构建之外没有运行任何东西,.lock文件被删除后会重新创建。似乎ngcc最近出现了一些bug。 - Alexander
显示剩余2条评论

54
 rm node_modules/@angular/compiler-cli/ngcc/__ngcc_lock_file__ 

这是一个经常被问到的问题,但它很聪明。感谢您使它更容易。 - Aras

16

可行解决方案

  1. 删除所有节点模块
  2. 关闭任何正在运行的终端,或者如果您不能确保关闭了所有正在运行的终端,则可以关闭计算机
  3. 运行npm i安装您的模块
  4. 运行ng s

这对我来说运行良好!


这对我有用。我尝试删除 __ngcc_lock_file__,但是在删除锁定文件后,我遇到了其他问题。 - Brandon Rader
这是什么问题? - Omar Hasan
Sass编译问题。自上次成功编译以来,我的Sass文件没有更改,因此我认为可能是一些损坏的node_modules引起的。结果证明这解决了问题,如果我没有已经删除它,也会解决锁定问题。 - Brandon Rader
在我的情况下,ngcc_lock_file不存在,运行npm i修复了这个问题(即使我之前已经运行过npm ci)。 - Mauricio Gracia Gutierrez
@MauricioGraciaGutierrez 你在使用哪个系统?我看这取决于Angular的版本,可能也跟操作系统有关。在我的情况下,该文件的路径为:node_modules/.ngcc_lock_file - Yevhenii Herasymchuk
我使用的是Windows 10和VSCode。 - Mauricio Gracia Gutierrez

6

这个问题很可能是一个特例。

  1. 确保没有同时运行其他的ng serve命令。
  2. 停止当前正在运行的进程,然后重试。
  3. 重新启动电脑,然后再试一次。

如果以上方法都不起作用

请发布完整的日志以便于排除问题。


1
@Oleg,我觉得ngcc逻辑存在一些问题。 - Malik Haseeb
如果您正在使用Angular 9,则已经发布了14个候选版本(迄今为止最经过测试的Angular版本)。如果您没有使用非常独特的设置-开发人员应该已经进行了测试。请发布您的配置或完整日志。 - 0leg
@malik-haseeb 确实 - 根据我的观察,ngcc 13 在这方面比之前的版本有更多的问题! - Alexander

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