您说您无法卸载节点工具,但最终,我必须先卸载节点工具,然后才能获得可用的 Visual Studio。安装默认设置和节点工具后,Visual Studio 会自动安装 package.json,然后自动分析这些文件以尝试创建代码提示智能感知,节点工具将创建一个非常大的 .ntvs_analysis.dat 缓存文件。在所有这些强制设置和分析之后,如果我没有 CTRL-ALT-DEL 退出 5-30 分钟的冻结,它会在再次崩溃之前工作几分钟。在我的笔记本电脑死机之前,我会看到内存和 CPU 使用率激增,并且 .ntvs_analysis 文件只会变得更大。我花了一段时间才意识到我仍然可以在没有节点工具的情况下使用和制作节点项目。
- 将 package.json 文件放在解决方案文件的父目录中,这样 Visual Studio 就没有机会分析(并死掉)试图为大型 node_modules 文件夹构建智能感知。该文件可能位于您的根 c:\ 驱动器中,但请将其放置在对您的项目范围有意义的位置。 (隐藏 node_modules 文件夹也可以,但是同一项目的新用户也需要隐藏他们的文件夹,并且他们需要在 VS 尝试自动安装 package.json 之前这样做)。
- 使用命令窗口,在 package.json 文件夹的位置运行
npm install。
- Task Runner Explorer 将搜索父目录 package.json。它将加载 package.json 的“scripts”标签中定义的任务,以及 gruntfile.js 或 gulp.js 文件中定义的任务。
- 为您的项目类型使用 ASP.Net Web 应用程序,但像往常一样构建您的节点项目。
- 如果所有其他方法都失败了,请使用不同的 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 发生争执,那么支持非常薄弱项目。
我希望有人能给出比我更好的答案,因为我也对更好的解决方案感兴趣。