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

我想在我的node.js v0.12应用程序中使用node-sass模块,以从libsass的性能中libsass
我执行npm i node-sass安装模块,到目前为止没有错误。

现在乱七八糟的开始:
如果我只是在terminal中打开REPL来尝试node-sass那么一切正常,但如果我把它包含在我的项目文件中,并运行node myfile.js那么我得到以下错误信息:

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

在npmjs.com上的模块描述表明,在Ubuntu下parsing#!/usr/bin/env node可能会有问题,以及如何解决这个问题,但在我的机器上并不是这样。
我找不到任何有用的东西,所以我希望你能帮助我。

我在Ubuntu 14.10下使用node v0.12.2。

PS:我已经尝试重新安装节点sass,但没有成功。 没有什么变化。

您可能已尝试在使用时重新安装节点sass

 npm install node-sass 

要么

 npm uninstall node-sass npm install node-sass 

但是节点sass是Sass的C版本。 你必须使用npm重build :

 npm rebuild node-sass 

如果您正在使用节点4.x或更高版本,那么您需要重新安装gulp-sass:

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

我通过删除现有的/node_modules文件夹并运行npm update解决了这个问题

这个解决方法( http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20 )工作forms我。

从这个设置开始:

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

我find了一个避免使用“sudo”命令的解决scheme。 我们需要在此之前修复npm权限: https : //docs.npmjs.com/getting-started/fixing-npm-permissions并修复Node的权限: http : //mawaha.com/permission-fix-node- js /在此之后,我们可以检查并重新安装npm,n或离子软件,而无需“sudo”。

我跟着这一步:

 npm install -gn 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

这是为我工作的唯一解决scheme,

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

结合以上两个答案为我工作,再加上:

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

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

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

在错误消息中查找试图find绑定的path。 在我的情况下:

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

所以我创build了这个映射win32-x64-46并从github中复制绑定。

我的解决scheme是降级到v0.10.25 (如果使用n尝试sudo n 0.10.25

对我来说,这个问题是由我的构build系统(Travis CI)在我的.travis.yml文件中做了一些愚蠢的事情.travis.yml 。 实际上, nvm use 0.12 之前 ,我正在调用npm install ,而这导致node-sass被构build为0.10而不是0.12 。 我的解决scheme是将nvm use.travis.yml文件的before_script部分.travis.ymlnpm install命令之前,它位于before_install部分。

这对我来说是一个Node版本的问题,尝试使用nvm来回溯你的版本,如:0.10.32。 这对我有效。 我正在运行4.2.2

我通过更新我的gcc从4.4.x到4.7.x解决了这个问题

不需要sudo或重新安装。 这一直为我工作:

 nvm use 0.12.2