Visual Studio 2017 - Node.JS服务器进程 - 关闭?

Rya*_*ier 129 asp.net-mvc node.js visual-studio-2017

我正在使用Visual Studio 2017中的ASP.NET应用程序,我注意到Node.JS:运行在1.3GB到1.8GB内存的服务器端Javascript进程.我的IIS工作进程是VS 2015中的正常大小.

我的应用程序不包含任何Node.JS库.我无法弄清楚如何关闭此Node.JS:服务器端Javascript进程.对于我没用的东西来说,它占用了太多的记忆.

除了卸载VS 2017并切换回VS 2015之外,有没有办法解决这个问题?

在此输入图像描述

在任务管理器中杀死主进程不会影响VS中的任何内容,但是如果我转到详细信息选项卡并终止单个正在运行的进程,则会导致Visual Studio崩溃.我拍摄了一段视频,说明我杀了这个过程后发生了什么,并运行了我的本地网页(对不起质量,SO图像尺寸限制为2MB):

在此输入图像描述

小智 176

工具>选项>文本编辑器> JavaScript/TypeScript>语言服务...

取消选中"启用新的JavaScript语言服务".

这似乎阻止NodeJS进程启动.

  • 这个解决方案有所帮助,应予以赞成.但是您需要重新启动visual studio才能生效. (19认同)
  • 我做了这个,重新启动了VS2017,当我启动VS2017时它仍然没有阻止"Node.js:服务器端JavaScript"启动.它在我的机器上占用大约800MB,我无法在Chrome中调试. (14认同)
  • 这在我的菜单中甚至不是我的选择 (3认同)

Rya*_*ier 27

我就这个问题提出了反馈意见:

https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html

我收到了MS团队的回复 - 他指示我这篇文章:

https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629

node.exe进程具有命令行: 在此输入图像描述

有效地我被告知:

在VS 2017中,JavaScript中实现了一些功能.Visual Studio使用Node.js来运行该JavaScript.除此之外,Node还用于运行代码,该代码在用户编辑TypeScript或JavaScript时提供格式化和智能感知服务.这是VS 2015的变化.

它回答了我的问题,但揭示了另一个问题 - 为什么你需要1.4GB的内存来给我智能感知JavaScript文件...或者这是VS内置的解决方案之一所以它使用更少的内存因此它没有是否达到了32位进程的2GB(4GB)限制?问题问题.

  • 这对我产生了相反的影响,并使VS2017变得如此懒惰(双关语意),以至于我要回到VS2015。我发现MS必须使用第三方外部框架来做像Intellisense这样简单的事情有点荒谬。那一直是他们的优势之一……现在呢?我已禁用TypeScript和Node.js,如果仅看Chrome VS2017挂起得非常严重,我有时不得不重启。所以至少对于我来说,回到Firefox和VS2015。这是在i7、16GM RAM和Win10 Pro的所有SSD设置上。令人震惊 (2认同)

Gab*_*iel 18

您必须在Visual Studio上禁用TypeScript支持:

工具>扩展和更新>适用于Microsoft Visual Studio的TypeScript>禁用

之后,只需重新启动Visual Studio,就可以了.

  • 在禁用它后仍然显示.VS2017 (5认同)
  • 我按照此步骤操作后仍在运行 (2认同)
  • 仍在运行。这什么也没做。 (2认同)

Ral*_*lph 16

Ryan Ternier的回答指出了我认为正确的方向.按照他的链接(https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629)引导我去Bowden Kelly的回答,在接受的答案之下.

这是Bowden Kelly的回答:

您正在看到的节点进程正在为JavaScript语言服务提供支持.每当您编辑JS文件,TS文件或任何带有JS/TS的文件(html,cshtml等)时,您都会看到此过程.此过程是IntelliSense,代码导航,格式化和其他编辑功能的强大功能,它通过分析项目的整个上下文来实现.如果您的项目中有很多.js文件,这可能会变大,但问题很可能就是您有大量正在分析的库文件.默认情况下,我们将扫描项目中的每个.js/.ts文件.但是您可以覆盖此行为并调整语言服务以仅关注您的代码.为此,请使用以下设置在项目根目录中创建tsconfig.json:

__CODE__

一旦我将包含所有脚本库的文件夹添加到tsconfig.json文件中,生活就再好了.


use*_*322 5

有史以来最肮脏的解决方法:只需将其重命名ServiceHub.Host.Node.x86.exe为其他内容即可.从那以后就没有打扰过我.当(如果)您确实需要它时,只需将其重命名即可.

同样的技巧也适用于Adobe Photoshop,由于某种原因我还没有在我常用的工作流程中发现它也运行Node.


结果......

你不能只是重命名它,并期望事情继续发挥作用.谁知道!

显然这个重命名技巧只有在你暂停VS进程并终止节点然后恢复VS时才有效.如果您尝试使用重命名的Node exe文件启动VS,则在打开具有"未知硬错误"的项目时会崩溃.此外,在处理已加载的项目时,方法和属性上方的惰性引用计数器将无法工作,因为显然依赖于Node以某种方式存在.

因此,暂停Node进程并让Windows分页从ram交换到硬盘驱动器上可能没问题,而无需重命名exe,因此您可以在以后再次启动VS而无需重命名麻烦.如果你愿意承担后果,那就是.