Angular:在 VSCode 中运行 ngcc 会导致性能问题

Posted

技术标签:

【中文标题】Angular:在 VSCode 中运行 ngcc 会导致性能问题【英文标题】:Angular: Running ngcc causing performance issues in VSCode 【发布时间】:2021-05-22 12:16:48 【问题描述】:

在我上次更新后的 Visual Studio Code 编辑器中,我在状态栏中看到以下文本:

Angular: Running ngcc for project d:/..../tsconfig.spec.json

它看起来像被冻结或什么都不做,只是旋转箭头。

在此之前,我看到了一个类似的,以tscfonfig.json 结尾...

由于此文本显示为状态,我的 vscode 存在一些性能问题......它变得非常非常慢。有时,快速导入(ctrl-space)通常不起作用,找不到类,接口在此更新之前运行良好。

这是什么?它是必要的还是我可以以某种方式关闭?这可能是插件错误吗?

【问题讨论】:

遇到同样的问题,我不认为这是由于扩展引起的,而是因为解决方案样式 tsconfig.. 这是否与 VSCode 有关,或者您是否在终端中也遇到此问题?曾经有一段时间,在 Windows 上进行编译的速度慢得令人难以置信。在 VirtualBox 中启动 Linux 并在 Linux 上转译更快。可能与此有关。 与 VSCode 相关。 Windows 上的其他应用程序运行良好。否则ng build --watch 也运行良好。只有在 VSCode 中发生了一些奇怪的事情...... 这里相同,使得 VSCode 无法用于相当大的角度回购。不得不切换 IDE 以保持理智 我遇到了同样的问题:VSCode: 1.53.2 Angular Language Service: 11.2.2 "@angular-devkit/architect": ">= 0.900 【参考方案1】:

编辑:他们提高了 Angular 语言服务 v11.2.3 版本的性能。在这个版本(或更高版本)中,您可以重新启用Experimental-ivy 功能,它仍然较慢但不像以前那样,现在至少可以使用(他们说还有改进的空间)。


如果它再次变慢,这可能是 Angular 语言服务中新的 Experimental-ivy 功能的已知问题,它们是 working on a fix。

目前,您可以通过打开扩展设置暂时禁用它:

然后取消选中 Experimental-ivy 功能:

【讨论】:

【参考方案2】:

我有同样的问题。我不得不在 Angular Compiler Options 中关闭 FullTemplateTypeCheck。

注意:此问题已在 Angular 语言服务 VS 代码扩展的 V11.2.3 版本中解决。

如果你想禁用 fullTemplateTypeCheck:

在您的 tsconfig.json 文件中,将“fullTemplateTypeCheck”设置为 false 并重新启动 VS Code。

fullTemplateTypeCheck 位于 tsconfig.json 文件的 angularCompilerOptions 对象中。

这是我的:

  "angularCompilerOptions": 
    "enableIvy": true,
    "fullTemplateTypeCheck": false    
  

更新

如果您将 Angular 语言服务 VS 代码扩展升级到 V11.2.3。看起来这个问题已经解决了。见here。

我将扩展更新到 V11.2.3,并重新启用了 fullTemplateTypeCheck,我可以确认它按预期工作。

【讨论】:

以上是关于Angular:在 VSCode 中运行 ngcc 会导致性能问题的主要内容,如果未能解决你的问题,请参考以下文章

StackBlitz ngcc 在启用 Ivy 的情况下无法在我的 npm 库上运行

`ngcc --properties es2015 浏览器模块主 --first-only --create-ivy-entry-points 上的角度错误

另一个ID为#######的进程当前正在运行ngcc

5个对Angular开发者有用的VSCode扩展

如何 在 VSCode集成 angular2/4 插件

Angular 10:路径映射在导入时在 VSCode 中显示错误