我想使用谷歌网络入门套件。我安装了node.js v0.12.0, node-sass & gulp。

然后跑着说:

$ sudo npm install

当我输入gulp serve时,得到了这个错误:

Using gulpfile ~/web-starter-kit/gulpfile.js Starting 'styles'... 'styles' errored after 93 ms 
Error: `libsass` bindings not found. Try reinstalling `node-sass`? at getBinding

我重新安装了node和gulp,但这没有帮助。

接下来我该怎么办?


当前回答

我发现这个命令很有用:

npm rebuild node-sass

从重建文档:

这在安装新版本的节点(或交换节点)时非常有用 并且必须使用新的node.js重新编译所有的c++插件 二进制文件。

http://laravel.io/forum/10-29-2014-laravel-elixir-sass-error

其他回答

我的问题是,我在一台节点版本为0.12.2的机器上,但它使用的是旧的1.x。npm的X版本。确保更新你的npm版本:sudo npm install -g npm一旦完成,删除所有现有的node-sass并通过npm重新安装它。

这个答案和OP有点正交,但是

在Node v4.0.0上,libsass绑定不能与Node -sass包装器一起正确安装。我得到了与问题中相同的错误消息(错误:'libsass'绑定未找到。尝试重新安装' Node -sass'),但我最终卸载了Node v4.0.0,并使用nvm安装了v0.12.7,通过以下脚本:

https://gist.github.com/brock/5b1b70590e1171c4ab54

现在libsass和node-sass都正常工作了。

我删除了所有的/node_modules文件夹,然后运行npm install,它工作了。

我有节点v5.5.0, npm 3.3.12

对我来说,这个问题是由我的构建系统(Travis CI)在我的. Travis中做了一些愚蠢的事情引起的。yml文件。实际上,我在nvm使用0.12之前调用npm install,这导致node-sass为0.10而不是0.12构建。我的解决方案是简单地将nvm的使用移出.travis。Yml文件的before_script部分到NPM install命令之前,这是在before_install部分。

在您的情况下,无论您使用gulp启动哪个进程,都可能使用不同版本的node(与您所期望的不同)。

我发现这个命令很有用:

npm rebuild node-sass

从重建文档:

这在安装新版本的节点(或交换节点)时非常有用 并且必须使用新的node.js重新编译所有的c++插件 二进制文件。

http://laravel.io/forum/10-29-2014-laravel-elixir-sass-error