node_modules 减慢了 VS 2017 IDE
Posted
技术标签:
【中文标题】node_modules 减慢了 VS 2017 IDE【英文标题】:node_modules slow down the VS 2017 IDE 【发布时间】:2017-08-04 13:36:51 【问题描述】:我正在开发一个 Angular 2 项目,它是由 angular/CLI 创建的。在我通过“打开 -> 文件夹”打开我的项目后,CPU 使用率提高到 50% 以上,一切都变得非常缓慢。我测试了由“node_moduls”引起的减速问题。删除此文件夹后,IDE 将恢复正常。
但是,在项目中,我仍然需要“node_moduls”文件夹,因为如果我删除了“node_moduls”文件夹,我到处都会收到错误消息!甚至是从角芯导入!
import Component, OnInit, ViewChild, Input, Output, EventEmitter from '@angular/core';)
有什么办法可以解决这个问题吗?
如我所见,VS 2017 一直在扫描我的文件夹和文件,这个过程已经花费了 3 个小时。现在 IDE 仍然占用 30% 的 CPU 使用率。我认为它需要将 VS 代码的文件夹管理理念移植到 VS 2017。
我已经检查了应该显示在右键菜单上的“排除”选项。但是,它没有任何排除文件夹的选项。
更新:已经过了一个晚上,(我保持 VS2017 打开)VS 仍然占用 30-40% 的 CPU 使用率,并且扫描数据仍然在 45% 与第一张图像相同。
【问题讨论】:
你为什么不从你的解决方案/项目中排除node_modules
?
@pixelbits 因为它没有排除node_modules
的选项......
我认为这个问题是VS 2017的函数映射系统造成的。 IDE 将扫描每个文件并将它们存储在位于 .vs 文件夹(这是一个隐藏文件夹)中的 SQLite 文件中。 SQLite 文件的大小将超过 50MB。
我的项目不会使用项目中包含的 node_modules 文件夹构建。我在那里有排除选项,但选择实际上会使 VS 2017 崩溃。即使首先包含它也会导致 VS 2017 挂起。我不得不手动修复解决方案文件。 VS 2017 打字稿和角度支持仍处于测试阶段。
【参考方案1】:
创建一个新的 Visual Studio 项目,并通过拖放到解决方案资源管理器中的解决方案节点将所有这些文件(不包括 node_modules 文件夹)添加到该项目。 node_modules 文件夹应该在您的项目目录中,但不包含在您的 VS 项目中。
【讨论】:
最简单的方法是右键单击node_modules
目录并选择从项目中排除。
@Stijn 如果您将项目作为文件夹打开,则右键单击选项不存在。【参考方案2】:
为了使 angular2 node_modules 在 Visual Studio 中工作,我必须将 "skipLibCheck": true 添加到 tsconfig.json 文件中。
"compilerOptions":
...
"skipLibCheck": true
这将阻止 node_modules 使用 typescript 构建。
【讨论】:
你好,我试过这个,但它不起作用......我认为这是VS 2017的问题。我可以看到VS2017正在寻求扫描所有文件并存储SQLite 文件中的路径和函数。我认为是IDE变慢的原因,这是VS代码不做的。【参考方案3】:不要在您的 VS 项目中包含 node_modules
,因为它需要很长时间才能加载。
在您的tsconfig.json
文件中,您需要将node_modules
文件夹排除在编译之外:
"compilerOptions":
...
,
"exclude": [
"node_modules"
]
【讨论】:
【参考方案4】:而不是使用
文件 -> 打开 -> 文件夹
使用
文件 -> 打开 -> 网站...
更新:
或者(感谢wodzu)
解决方案 > 添加 > 现有网站
导航到项目所在的硬盘驱动器上的位置并选择其目录。
因为它毕竟是一个应该可以正常工作并且不执行扫描的网站。
我有同样的问题,但不想修改 tsconfig.json 文件,因为我们用来编译应用程序的 angular cli 工具使用了该配置。
【讨论】:
嗨,我试过这种方式。它现在对我有用,谢谢 或:解决方案 > 添加 > 现有网站以上是关于node_modules 减慢了 VS 2017 IDE的主要内容,如果未能解决你的问题,请参考以下文章
如何在 VS Code 打开全局安装的 node_modules
阻止 VS Code 跟踪对 node_modules 的更改
如何让 VS Code 智能感知在多个 node_modules 文件夹中搜索打字稿