在nodejs中使用node-sass时找不到libsass绑定

时间:2015-04-05 20:23:41

标签: node.js ubuntu npm libsass node-sass

我想使用node-sass应用中的node.js v0.12模块,以便从libsass的效果中受益。
我执行npm i node-sass安装模块,到目前为止没有错误。

现在混乱开始了:
如果我只是打开终端中的REPL来试用node-sass,那么一切正常,但如果我将其包含在我的项目文件中并运行node myfile.js,那么我会收到以下错误消息:< BR />

Error: `libsass` bindings not found. Try reinstalling `node-sass`?

模块在npmjs.com的说明指出在Ubuntu下解析#!/usr/bin/env node可能存在问题,以及如何解决这个问题但在我的机器上并非如此。
我找不到任何有用的东西,所以我希望你能帮到我。

我在Ubuntu 14.10下使用节点v0.12.2。

P.S。:我已经尝试重新安装node-sass但没有成功。什么都没有改变。

12 个答案:

答案 0 :(得分:272)

如果您使用的是节点4.x或更高版本,则需要重新安装gulp-sass:

npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2

答案 1 :(得分:116)

您可能尝试在使用

时重新安装node-sass
npm install node-sass

npm uninstall node-sass
npm install node-sass

但是node-sass是Sass的C版本。您必须使用npm rebuild

npm rebuild node-sass

答案 2 :(得分:20)

我通过删除现有的/node_modules文件夹并运行npm update

来解决此问题

答案 3 :(得分:8)

这种解决方法(http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20)形成了我的工作。

从此设置开始:

Cordova CLI:5.3.3 Gulp版本:CLI版本3.9.0 Gulp local:本地版本3.9.0 离子版:1.1.0 离子CLI版本:1.6.5 Ionic App Lib版本:0.3.9 ios-deploy版本:未安装 ios-sim版本:5.0.1 操作系统:Mac OS X Yosemite 节点版本:v4.1.1 Xcode版本:Xcode 6.4 Build版本6E35b

我找到了一个解决方案,以避免使用&#39; sudo&#39;命令。我们之前需要修改npm权限:https://docs.npmjs.com/getting-started/fixing-npm-permissions并在此修复节点的权限:http://mawaha.com/permission-fix-node-js/在此之后,我们可以检查并重新安装软件,而无需使用&#39; sudo&#39;对于npm,n或离子。

我遵循了这一步:

npm install -g n
rm -R node_modules/ 
npm install node-sass@3.3.3 
npm -g install node-gyp@3
npm uninstall gulp-sass
npm install gulp-sass@2 
npm rebuild node-sass 
ionic setup sass 

为什么node-sass@3.3.3?因为它适用于最新的离子版本:https://github.com/driftyco/ionic/pull/4449

答案 4 :(得分:8)

这是唯一对我有用的解决方案,

sudo npm install -g n
sudo n 0.12.7
npm install node-sass@2
sudo npm -g install node-gyp@3
npm rebuild node-sass

答案 5 :(得分:4)

结合上面的两个答案对我有用,加上补充:

sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass

答案 6 :(得分:3)

我已经解决了这个问题,用指定的binding.node文件创建了正确的目录。您可以从github下载绑定

https://github.com/sass/node-sass-binaries

在错误消息中查找尝试查找绑定的路径。就我而言:

C:\用户\马亭\文件\ node_modules \吞-SASS \ node_modules \节点萨斯\厂商\ Win32的x64-46

所以我创建了这个地图win32-x64-46并从github复制绑定。

答案 7 :(得分:1)

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

答案 8 :(得分:1)

This was a Node version issue for me, try using nvm to backtrack your version to something like: 0.10.32. This worked for me. I was running 4.2.2

答案 9 :(得分:0)

我通过updating my gcc from 4.4.x to 4.7.x

解决了这个问题

答案 10 :(得分:0)

无需sudo或重新安装。这一直对我有用:

nvm use 0.12.2

答案 11 :(得分:0)

这是我为解决问题而采取的步骤。

  1. 我手动将我的节点更新到最新版本

  2. 重新安装 node-sass

npm install node-sass

3.npm 审计修复以修复某些漏洞。

memcpy(str1.data, "0123456789012345678", 20);

5.npm install node-sass

`npm audit fix`

此后正常工作和编译。 如果与我的回答有关的任何内容不正确,我深表歉意。我只是一个初学者。 希望对你有用