在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.yml到npm install命令之前,它位于before_install部分。 
这对我来说是一个Node版本的问题,尝试使用nvm来回溯你的版本,如:0.10.32。 这对我有效。 我正在运行4.2.2
我通过更新我的gcc从4.4.x到4.7.x解决了这个问题
不需要sudo或重新安装。 这一直为我工作:
 nvm use 0.12.2