节点工具减慢了 Visual Studio

5 visual-studio node.js visual-studio-extensions visual-studio-2015

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

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

有什么建议?谢谢

Ben*_*son 2

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

\n\n
    \n
  1. 将 package.json 文件放在解决方案文件的父目录中,这样 Visual Studio 就没有机会分析(并终止)尝试为大型 node_modules 文件夹构建智能感知。该文件可能位于您的根 c:\\ 驱动器中,但请将其放置在对您的项目范围有意义的位置。(隐藏node_modules文件夹也可以,但是同一项目的新用户也需要隐藏他们的文件夹,并且他们需要在VS尝试自动安装package.json之前执行此操作)。
  2. \n
  3. 使用命令窗口,npm install在 package.json 文件夹的位置运行。
  4. \n
  5. Task Runner Explorer 将搜索父目录 package.json。它将加载 package.json 的“scripts”标签中定义的任务,以及 gruntfile.js 或 gulp.js 文件中定义的任务。
  6. \n
  7. 使用适合您的项目类型的 ASP.Net Web 应用程序,但像往常一样构建您的节点项目。
  8. \n
  9. 如果所有其他方法都失败,请使用不同的 IDE(请感受我与您对 Visual Studio 共同的挫败感)。我推荐崇高。
  10. \n
\n\n

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

\n\n

如果,正如你所说,你必须有节点工具,关闭其他插件,关闭智能感知,那么,在遵循我自己的建议之后,我意识到我最好使用记事本(arg!)。

\n\n

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

\n\n

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

\n\n
\n

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

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

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

\n\n
<PropertyGroup>\n     <!-- Specifies the directories which are ignored. Any paths \n        which contain these directory names will be ignored. \n        The directory name must completely match and no wild cards \n        are allowed\n    -->\n<AnalysisIgnoredDirectories>bower_components;dir_not_included</AnalysisIgnoredDirectories>\n</PropertyGroup>\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

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

\n
\n\n

你不是唯一一个为此摸不着头脑的开发人员,对于微软所有的广告node.js支持来说,支持非常薄弱,如果我和我团队中的一些非常聪明的人发现自己在使用node时与Visual Studio作斗争项目。

\n\n

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

\n