node_modules使得VS 2017 IDE运行缓慢

12

我正在处理一个Angular 2项目,使用的是angular/CLI创建。当我通过“打开->文件夹”打开我的项目后,CPU使用率会提高到50%以上,并且一切都变得非常缓慢。我测试了下这个问题,发现减速问题是由于“node_moduls”引起的。当我删除了这个文件夹后,IDE就恢复正常了。

但是,在项目中,我仍然需要“node_moduls”文件夹,因为如果我删除了“node_moduls”文件夹,我会在任何地方收到错误消息!即使是从Angular核心导入!

import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';)

有没有办法解决这个问题?

据我所见,VS 2017一直在扫描我的文件夹和文件,这个过程已经持续了3个小时。现在,IDE仍然占用30%的CPU使用率。我认为它需要将VS代码的文件夹管理思想移植到VS 2017中。 enter image description here

我已经检查了右键菜单上应该显示的“排除”选项。但是,它没有任何排除文件夹的选项。

enter image description here

更新:已经过了一夜(我让VS2017保持开启状态),VS仍然占用30-40%的CPU使用率,并且扫描数据仍然是45%,与第一张图片相同。


为什么不直接从你的解决方案/项目中排除 node_modules - pixelbits
1
@pixelbits 因为它没有排除 node_modules 的选项...... - infinitysky
我认为这个问题是由于VS 2017的函数映射系统引起的。IDE会扫描每个文件并将它们存储在一个位于.vs文件夹中的SQLite文件中(这是一个隐藏文件夹)。SQLite文件的大小可能超过50MB。 - infinitysky
1
我的项目包含node_modules文件夹时无法构建。我已经在排除选项中设置了它,但选择它实际上会导致VS 2017崩溃。即使一开始包含它也会导致VS 2017挂起。我不得不手动修复解决方案文件。VS 2017的typescript和angular支持仍处于beta版本。 - billy jean
4个回答

9

不要使用

文件 -> 打开 -> 文件夹

应该使用

文件 -> 打开 -> 网站...

更新:

或者 (感谢wodzu)

解决方案 > 添加 > 存在的网站

导航到项目所在的硬盘位置,并选择其目录。

因为毕竟这是一个网站,所以这样做应该可以正常工作,并且不会执行扫描。

我遇到了同样的问题,但不想修改tsconfig.json文件,因为这个配置是由我们用于编译应用程序的angular cli工具使用的。


嗨,我已经尝试了这种方法。现在它对我有效,谢谢。 - infinitysky
添加现有网站的解决方案 - wodzu

1
不要将node_modules包含在您的VS项目中,因为它会花费很长时间来加载。
在您的tsconfig.json文件中,您需要将node_modules文件夹排除在编译之外:
"compilerOptions": 
    ...
},
"exclude": [
    "node_modules"
]

0
为了让 Angular2 的 node_modules 在 Visual Studio 中正常工作,我不得不在 tsconfig.json 文件中添加 "skipLibCheck": true。
{
  "compilerOptions": {
     ...
    "skipLibCheck": true
   }
}

这将防止 node_modules 与 TypeScript 一起构建。


嗨,我已经尝试过这个,但它不起作用...我认为这是VS 2017的问题。我可以看到VS2017正在寻求扫描所有文件并将路径和函数存储在SQLite文件中。我认为这就是IDE变慢的原因,而VS Code则不需要这样做。 - infinitysky

-1
创建一个新的Visual Studio项目,并通过将这些文件拖放到解决方案资源管理器中的解决方案节点来将它们添加到该项目中,但不包括node_modules文件夹。node_modules文件夹应该存在于您的项目目录中,但不包含在您的VS项目中。

简单的方法是右键单击 node_modules 目录,然后选择 从项目中排除. - user247702
1
@Stijn 如果您将项目作为文件夹打开,那么右键单击选项就不存在了。 - Neutrino

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