Visual Studio 2017中的gulp集成无法正常工作

时间:2018-02-11 23:23:58

标签: node.js gulp visual-studio-2017

我试图将gulp集成到Visual Studio 2017中。它正在使用命令行。 VS2017中的Task Runner Explorer告诉我Failed to load. See output window.

输出窗口告诉我以下内容:

Failed to run "<ProjectPath>\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
<ProjectPath>\node_modules\node-sass\lib\binding.js:15
      throw new Error(errors.missingBinary());
      ^
Error: Missing binding <ProjectPath>\node_modules\node-sass\vendor\win32-x64-47\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 8.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass --force` to build the binding for your current environment.

我尝试运行npm rebuild node-sass --force,只是被告知Error: Can't find Python executable "C:\Python36\python.EXE", you can set the PYTHON env variable.,我确认已存在。

我不确定我想要走多远这个兔子洞。它似乎是一个VS问题,因为一切都在命令行上按预期工作。我希望与VS的gulp集成正常工作。

3 个答案:

答案 0 :(得分:18)

将VS工具指向路径上的节点安装。

我可以在错误中看到5.x8.x之间存在版本差异 - VS可能是旧版本(因为它带有预打包和过时的节点)并且正在执行优先使用默认设置。

我猜测您是通过node-sass(外部命令行)实例安装了8.x,但VS正试图通过您的VS内部{{1}执行您的gulp任务}。 5.x利用node-gyp通过installation scripts构建二进制文件,并且版本之间存在不兼容性。换句话说,此软件包以及许多其他构建二进制文件的软件包专门针对安装的节点版本而定制。总而言之,node-sass中的所有内容都是针对node_modules/.bin构建的,但实际上是通过Visual Studio在8.x上运行。

不要害怕,这很容易解决。查看this answer,查看许多人面临的长期运行问题的历史背景。基本上,您希望5.x位于此列表的顶部,以便始终使用您的操作系统安装...

enter image description here

一旦你这样做(只是为了安全起见) - 吹走$(PATH),重新安装和快乐编码。 VS确实需要停止使用固定版本的节点...

答案 1 :(得分:0)

我在Visual Studio 2017和2019上都遇到了这个问题。显然我的Node安装没有在PATH变量中注册(并且我没有权限在我的工作机上进行修改),所以我手动添加了链接到位于C:\ Program Files \ nodejs的Node,将其移动到顶部位置,并且对我有用。

Image of Visual Studio 2019 with nodejs moved to the top of the external tools list in the Web Package Management window.

答案 2 :(得分:0)

这使我发疯,直到我发现另外一件失踪的东西。即使您按照其他答案中的说明配置了所有内容,也可能会遇到相同的错误,甚至可能是您的用户文件夹与安装Node的驱动器不在同一驱动器上。然后还将%APPDATA%\ npm 添加到外部工具路径,以便也可以找到全局安装的Node工具。

因此,VS中所有外部工具的所有配置都应首先包含以下两个路径,顺序如下:

  1. C:\ Program Files \ NodeJS(或安装Node的位置)。
  2. %APPDATA%\ npm

对于没有#2的我来说,所有地方都可以从命令行运行,但是在VS中却不能。有了它,现在一切也可以在VS中使用。