节点工具减慢了视觉工作室的速度

时间:2016-03-16 07:27:57

标签: node.js visual-studio visual-studio-2015 visual-studio-extensions

我可以设置任何配置,以便节点工具不会减慢视觉工作室的速度吗?我无法卸载节点工具,因为我需要使用它,但它会慢下来,而且只需打开一个项目的属性窗口就会变得非常痛苦。

我试图隐藏node_modules文件夹,认为它可能正在尝试读取这些文件,但这并没有改变任何内容。

有什么建议吗? 感谢

3 个答案:

答案 0 :(得分:2)

你说你无法卸载节点工具,但最终,我必须先卸载Node Tools才能获得可用的Visual Studio。在安装了默认设置和节点工具的情况下,Visual Studio自动安装package.json,然后自动分析这些文件以尝试创建代码提示智能感知,Node工具将创建一个非常大的.ntvs_analysis.dat缓存文件。在所有这些强制设置和分析之后,如果我没有按照CTRL-ALT-DEL的方式从冻结5-30分钟开始,那么它会在再次崩溃之前工作几分钟。在我的笔记本电脑冻结之前,我会看到内存和CPU使用量激增,而.ntvs_analysis文件只会变大。我花了一段时间才意识到我仍然可以在没有Node Tools的情况下使用和制作节点项目。

  1. 将package.json文件放在解决方案文件的父目录中,这样visual studio就没有机会分析(并且死掉)尝试为大型node_modules文件夹构建intellisense。此文件可以与根c:\ drive一样,但将其放在对项目范围有意义的位置。 (隐藏node_modules文件夹也可以,但同一项目的新用户也需要隐藏他们的文件夹,他们需要在VS尝试自动安装package.json之前进行此操作。)
  2. 使用命令窗口,在package.json文件夹的位置运行npm install
  3. Task Runner Explorer将搜索父目录package.json。它将加载package.json的“scripts”标记中定义的任务,以及gruntfile.js或gulp.js文件中定义的任务。
  4. 为项目类型使用ASP.Net Web应用程序,但照常构建节点项目。
  5. 如果所有其他方法都失败了,请使用不同的IDE(请在此处感受我对视觉工作室的共同挫败感)。我推荐Sublime。
  6. 这种解决方法仍然使我们的团队文件组织方式在TFS中工作变得具有挑战性。

    如果,如你所说,你必须有节点工具,关闭其他插件,关闭intellisense,此时,按照我自己的建议,我意识到我最好用记事本(arg!)。

    您可以忽略某些目录进行分析 -

    来自https://github.com/Microsoft/nodejstools/wiki/Projects#ignoring-directories-for-analysis的引用:

      

    从分析中忽略某些目录(例如客户端JavaScript)可能很有用。这样做的原因有很多,但最大的两个原因是:

         
        
    • 特定目录很大,需要花费大量时间进行分析。
    •   
    • 该目录包含不需要分析的客户端代码。
    •   
         

    .njsproj文件中有一个属性可用于忽略目录。可以将以下代码添加到PropertyGroup下的项目文件中:

    <PropertyGroup>
         <!-- Specifies the directories which are ignored. Any paths 
            which contain these directory names will be ignored. 
            The directory name must completely match and no wild cards 
            are allowed
        -->
    <AnalysisIgnoredDirectories>bower_components;dir_not_included</AnalysisIgnoredDirectories>
    </PropertyGroup>
    
         

    请注意,将忽略包含指定字符串的所有文件路径。因此,如果指定dir_not_included,则将忽略包含dir_not_included的每个文件路径(包括子目录)。

         

    此属性优先于其他设置。这包括您是否将文件包含在项目中。如果您在此处将目录指定为忽略,则不会对其进行分析。

    对于微软的所有广告node.js支持,你并不是唯一一个对此有所了解的开发人员,支持非常薄,如果团队中有一些非常聪明的人,我发现自己在使用节点时正在与Visual Studio作斗争项目

    我希望有人比我的答案更好,因为我也对更好的解决方案感兴趣。

答案 1 :(得分:0)

已经差不多一年了,vs2017被释放了,但情况仍然相同。我强烈怀疑VS不尊重AnalysisIgnoredDirectories属性,或者对已更改的文件执行深度扫描(在每次gulp / npm构建之后)。

我们并不孤单,请查看此主题:https://github.com/Microsoft/nodejstools/issues/1506

当我从Microsoft收到进一步的信息时,我会更新此主题。在那之前,是的,我们要坚持使用普通的 notepad.exe

答案 2 :(得分:0)

我刚刚删除了所有外部文件夹的内容。就我而言,它是:

X:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 {Version} \ Web \ External)

在此之前我已经确定它是TFS(因为地理位置TFS服务器位于远离我的地方:互联网,防火墙等) - 在解决方案中的每次修改之后我等待最小15秒(在他们期间视觉工作室被阻止,做了无反应)。

但是现在,当node.js和其他外部内容被删除时 - 差不多两天我可以毫不拖延地工作。 我知道node.js本身应该可以正常工作 - 但是我没有触摸它,默认设置它的工作原理,看起来必须要改进;)。