Task Runner Explorer无法加载任务

时间:2015-07-08 19:08:12

标签: visual-studio gulp gulp-sass vs-2015-preview task-runner-explorer

我正在使用VS2015和Gulp。我打开Task Runner Explorer并点击刷新,这会显示在日志中:

Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
    at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
    at Module._compile (module.js:456:26)

所以我尝试在同一个目录中的PowerShell中运行cmd.exe /c gulp --tasks-simple,它运行正常 - 它返回一个任务列表。

我也能很好地运行与SASS相关的任务,所以我不确定为什么当它通过VS运行而不是直接在命令行上运行时抱怨SASS。

5 个答案:

答案 0 :(得分:310)

我最近从VS2013迁移出了同样的问题。

正如Josh在评论here中指出的那样,Visual Studio 2015附带了旧版本的Node。如果您不想使用Visual Studio中内置的任何版本的Node,您可以告诉它使用您已安装的版本。

  • 转到:工具&gt;选项&gt;项目和解决方案&gt;外部网络工具
  • 重新排序,以便$(PATH)高于$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

这也适用于其他工具,如Grunt,Bower和Gulp。

Mads Kristensen here找到了这个解决方案。

  

对于Visual Studio 2017,我们可以在
找到设置   Tools > Options > Projects and Solutions > Web Package Management > External Web Tools

答案 1 :(得分:7)

似乎gulp-sass在不同的位置搜索node-sass。这是一个临时解决方案。

  1. 在c:\ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \

  2. 中创建名为win32-ia32-11的新目录
  3. 转到https://github.com/sass/node-sass-binaries并下载win32-ia32-11_binding.node。

  4. 将win32-ia32-11_binding.node文件复制到c:\ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-ia32-11 \并将其重命名为binding.node

  5. Visual Studio Gulp - Task Runner

答案 2 :(得分:2)

我已经尝试了以上所有解决方案,但它不起作用,我找到了另一个解决方案here

您必须使用Node.js版本强制运行Visual Studio:

  1. 转到Tools&gt; Visual Studio 2015中的Options
  2. 转到Projects and Solutions&gt; External Web Tools
  3. 添加以下路径:C:\Program Files\nodejs

答案 3 :(得分:0)

解决我问题的唯一解决方案是重新安装NPM Task Runner。 您可以从市场上的以下链接下载 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner

答案 4 :(得分:0)

node-sass运行安装脚本以下载所需的二进制文件。如果没有环境变量,.npmrc变量或进程参数集,则使用当前进程平台,体系结构和Node ABI版本确定二进制文件。因此,如果在一个应用程序中运行节点安装,然后尝试在具有不同平台/体系结构/ ABI的应用程序中运行node-sass,则不会下载二进制文件。解决方案是手动下载二进制文件或使用环境变量(SASS_BINARY_NAME)或.npmrc变量(sass_binary_name)修复二进制版本

你可以在node-sass \ lib \ extensions.js中的getBinaryPath函数中看到这个的逻辑

另请参阅:Node Sass could not find a binding for your current environment