102

我正在使用 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)

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

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

4

5 回答 5

316

我最近从 VS2013 迁移时遇到了同样的问题。

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

  • 转到:工具 > 选项 > 项目和解决方案 > 外部 Web 工具
  • 重新排序,$(PATH)如上$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

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

在这里找到了 Mads Kristensen 的解决方案。

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

于 2015-07-16T02:07:43.447 回答
7

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

  1. 在 c:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\ 中创建一个名为 win32-ia32-11 的新目录

  2. 转到https://github.com/sass/node-sass-binaries并下载 win32-ia32-11_binding.node。

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

Visual Studio Gulp - 任务运行器

于 2015-07-08T21:23:51.973 回答
2

我已经尝试了上述所有解决方案,但它不起作用,我在这里找到了另一个解决方案。

您必须强制 Visual Studio 与您的 Node.js 版本一起运行:

  1. 在 Visual Studio 2015 中转到Tools>Options
  2. 前往Projects and Solutions>External Web Tools
  3. 添加以下路径:C:\Program Files\nodejs
于 2016-09-16T03:16:34.717 回答
0

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

于 2016-12-27T08:46:26.347 回答
0

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

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

另请参阅:Node Sass 找不到当前环境的绑定

于 2017-04-19T09:38:28.910 回答