【问题标题】:Node tools slowing down visual studio节点工具减慢了 Visual Studio
【发布时间】:2016-07-01 22:50:30
【问题描述】:

我可以设置任何配置,以便节点工具不会减慢 Visual Studio 的速度吗?我无法卸载节点工具,因为我需要使用它,但是它会减慢很多,而且只是打开项目的属性窗口变得非常痛苦。

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

有什么建议吗? 谢谢

【问题讨论】:

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


    【解决方案1】:

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

    1. 将 package.json 文件放在解决方案文件的父目录中,这样 Visual Studio 就没有机会分析(并死掉)试图为大型 node_modules 文件夹构建智能感知。该文件可能位于您的根 c:\ 驱动器中,但请将其放置在对您的项目范围有意义的位置。 (隐藏 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(请在这一点上感受到我对 Visual Studio 的共同挫败感)。我推荐 Sublime。

    这种解决方法仍然使在 TFS 中以我们团队文件的组织方式工作具有挑战性。

    如果,如您所说,您必须拥有节点工具,关闭其他插件,关闭智能感知,那么在遵循我自己的建议之后,我意识到我最好使用记事本(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 的文件路径都将被忽略(包括子目录)。

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

    你不是唯一一个对此感到头疼的开发人员,对于 Microsoft 的所有广告 node.js 支持,如果我和我团队中的一些非常聪明的人发现自己在使用 node 时与 Visual Studio 发生争执,那么支持非常薄弱项目。

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

    【讨论】:

      【解决方案2】:

      已经快一年多了,vs2017发布了,但情况还是一样。我强烈怀疑 VS 不尊重 AnalysisIgnoredDirectories 属性,或者对更改的文件执行深度扫描(在每次 gulp/npm 构建之后)。

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

      当我收到来自 Microsoft 的更多信息时,我会更新此主题。在那之前,是的,我们会坚持使用简单的 notepad.exe

      【讨论】:

        【解决方案3】:

        我刚刚删除了外部文件夹的所有内容。在我的情况下是:

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

        在此之前我已经确定它是 TFS(因为 TFS 服务器在地理位置上离我很远:互联网、防火墙等)- 在解决方案中的每次修改后,我等待至少 15 秒(在此期间,Visual Studio 被阻止了,确实没有反应)。

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

        【讨论】:

          猜你喜欢
          • 2011-04-05
          • 1970-01-01
          • 2019-06-12
          • 2014-10-02
          • 1970-01-01
          • 2019-05-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多