VS Task Runner Explorer - Node Sass找不到绑定

时间:2016-11-28 13:54:28

标签: node.js visual-studio-2015 npm sass gulp

打开Visual Studio Task Runner Explorer时,gulpfile.js无法加载,并且在“输出”窗口中发出此错误。

Failed to run "C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\node_modules\node-sass\lib\binding.js:15
      throw new Error(errors.missingBinary());
      ^
Error: Missing binding C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\node_modules\node-sass\vendor\win32-ia32-47\binding.node
Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports (C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> (C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (C:\DATA\Git\MyApp\MyBiz.MyApp\MyBiz.MyApp.WebsiteCore\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

运行gulp运行任务,我的SASS编译正常。

我尝试重新安装节点,我还确保只有一个npm可运行在Windows路径中,我已删除node_modules文件夹并运行npm install几次,也尝试过npm rebuild node-sass

所有这些数以百万计的酷炫新的前端工具和库似乎都在极大地扩大了“出问题”的表面,与以前的项目相比,它们的效率都不高。

4 个答案:

答案 0 :(得分:7)

配置VS以使用较新版本的节点。

查找Ryan Hayes在Synchronize Node.JS Install Version with Visual Studio 2015

的指示

如果链接失效,请按照以下说明进行操作。

  

我在Visual Studio之外更新了Node.JS,但由于VS使用自己独立于任何外部安装的安装,您可能会遇到node_modules包依赖性问题,其中一个版本的npm安装了一个包(这使得它依赖于那个版本的Node / npm),然后你就无法在其他版本中运行命令(它们会中断)。具体来说,我遇到了node-sass和windows绑定的问题。解决方案是将Visual Studio指向我已经在Visual Studio外部设置的Node.JS版本。

     
      
  1. 首先,找到您已经拥有的Node.js安装并在命令行中使用。
  2.   

我在C:\Program Files (x86)\nodejs\安装了nodejs。

  
      
  1. 转到工具&gt; Visual Studio 2015中的选项
  2.   
  3. 在此对话框中,转到项目和解决方案&gt;外部Web工具打开管理VS中使用的所有第三方工具的对话框。这是指向Node.js的地方。
  4.   
  5. 在顶部添加一个条目到node.js目录的路径,以强制Visual Studio使用该版本。   enter image description here
  6.   

答案 1 :(得分:4)

工具> 选项> 项目和解决方案> Web软件包管理> 外部Web工具< / strong>>将 $(PATH)移到 $(VSInstalledExternalTools)上方。

答案 2 :(得分:0)

对于Visual Studio 2017,类别名称不同。它现在被称为&#34; Web包管理&#34;

,而不是外部Web工具

Visual Studio 2017 External Tools npm Not working

答案 3 :(得分:0)

我在VS 2019中遇到了同样的问题。以下步骤对我有用。

Tools-> Options-> Projects and Solutions-> Web Package Management-> External Web Tools->添加以下条目C:\Program Files\nodejs->和将添加到顶部。

enter image description here