在Visual Studio 2017中更新Node版本

97

有没有人知道在Visual Studio 2017中更新Node的正式方法?我的开发电脑上安装了Node 6,但是VS2017似乎带有一个捆绑的Node 5副本,这意味着在命令行上运行npm install会使用Node 6设置各种包,如node-sass,而这些包需要与Node 6进行绑定。因此,在我从VS Task Runner运行gulp任务时,由于版本不匹配,一切都会失败。

我在C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External找到了VS Node安装文件,但是我有些犹豫,不知道是否可以直接替换它。有没有人升级过这个?我知道我可以通过降级我的电脑上的版本来使它与VS同步,但这似乎有些不妥。


1
谷歌搜索“visual studio node version”的最佳结果似乎可以解决问题:https://ryanhayes.net/synchronize-node-js-install-version-with-visual-studio-2015/ - Joe Clay
2
@JoeClay 那是针对VS2015的,VS2017中情况已经发生变化。我已经尝试过谷歌... - Henry Wilson
3
啊,我刚打开 VS ,这个选项位置变了... - Joe Clay
这个 https://github.com/aspnet/JavaScriptServices/issues/1686 也是相关的,这意味着 nodejs 的位置必须存在于系统的 Path 变量中。 - Atiq Rahman
4个回答

165

前往:

工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具

接着,您需要将 Node 安装目录添加到列表顶部,如下所示:

截图


不确定这是做什么的,因为它没有更新任何内容。 - drewid
38
作为对我而言有效的替代方案,只需将 $(PATH) 提高一级,以便它优先于 Web\External 目录(假设 node 已安装在您的环境路径中)。 - Leniency
我的代码按照答案所述运行正常。不过,这已经是第二次出现这个问题了,第一次是通过 @Leniency 的评论解决的。 :) - Imdad
1
"supercedes" 或者 "precedes" - N73k
@Leniency 这对我非常有效 - 一个节点扩展(NPM任务运行器由Mads)正在使用不同的(VS)节点版本,并且失败了 - 谢谢! - Michael Harper

66

您无需添加新的Node安装目录,Node已存在于PATH中。 请注意,$(PATH)在内部路径$(DevEnvDir)\Extensions\Microsoft\Web Tools\External之下。

要在内部路径之前使用全局PATH环境变量,只需使用右上角的箭头更改顺序。

当全局PATH在内部路径之前被搜索时,就会出现这样的情况,因此将使Visual Studio使用您自己版本的工具。 enter image description here


谢谢。这很好用,我更喜欢它而不是添加nodejs目录。 - Tim
这对我有用。某个包最终出现在“$(PATH)”之前,但当我将“$(PATH)”移动到“. \ node_modules \ .bin”下面时,gulp又开始工作了,我也恢复了我的Web应用程序图标 :) - Phil
相反,您也可以看到${VSInstalledExternalTools} - General Grievance

1
对我来说,问题是在与 csproj 文件相同的目录中有一个本地的 node.exe 文件,以及一个 node.exe.config 文件。

我有一个后期生成事件,会调用 gulp 来做一些其他工作,而 VS2017 会使用本地的 node.exe 文件,而不是我的 $(PATH) 变量中列出的内容。这是一个我不想使用的早期版本的 node,所以对我来说,解决方案要么是删除本地的 node.exe,这样就会使用在 $(PATH) 中列出的那个,要么就是升级本地的 node.exe 文件,如果确实需要 node.exe.config

我只是想在这里添加这个,以防别人遇到同样的问题。


0

看起来在

工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具

中的选项没有效果。但是可以通过

项目 > 属性

设置 Node 版本。

Project>properties screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接