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

Tor*_*enJ 77 ubuntu node.js npm node-sass libsass

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

现在乱七八糟的开始:
如果我只是打开REPL一个终端试用node-sass然后一切正常但如果我把它包含在我的项目文件中运行node myfile.js然后我得到以下错误信息:

Error: `libsass` bindings not found. Try reinstalling `node-sass`?
Run Code Online (Sandbox Code Playgroud)

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

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

PS:我已经尝试重新安装node-sass但没有成功.没有什么变化.

Wil*_*lva 272

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

npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.大人物. (10认同)
  • 这最终为我做了,不像其他每一个回答这个问题.+1 (4认同)
  • 这解决了我的问题!是显着更新节点的结果. (3认同)
  • 谢谢!我总是忘记如何解决这个问题,到目前为止,这是最简单,最快捷的解决方案. (2认同)
  • 谢谢你,谢谢你,谢谢你!这个小问题杀了一次演示,我害怕升级并恢复到0.12.7,今天我再次尝试,如果问题发生了,这就解决了! (2认同)
  • 这也为我解决了......经过几周的尝试其他解决方案而没有在我的项目上有测试套件.谢谢 (2认同)
  • 这对我也有用.非常感谢你 (2认同)

Phi*_*hev 118

您可能尝试在使用时重新安装node-sass

npm install node-sass
Run Code Online (Sandbox Code Playgroud)

要么

npm uninstall node-sass
npm install node-sass
Run Code Online (Sandbox Code Playgroud)

但是node-sass是Sass的C版本.你必须使用npm rebuild:

npm rebuild node-sass
Run Code Online (Sandbox Code Playgroud)

  • 当我尝试rebuild命令时,我收到错误'错误:找不到Python可执行文件'python"...不确定我的是Sass的C版本 (8认同)
  • 对于节点4.x,请转到[此答案](http://stackoverflow.com/a/32946197/3971911) (4认同)
  • 这也适合我,关心解释原因?:) (3认同)

Dal*_*ark 20

我通过删除现有/node_modules文件夹并运行来修复此问题npm update

  • 出于这个原因,源代码控制是存储依赖项的不好的地方!它需要完全锁定所有环境.`package.json`旨在描述您的依赖项,您应该使用其他东西在您的盒子上安装依赖项.(有一个调用npm install的脚本,或者一个docker容器,或者或者或者) (8认同)
  • 这就是package.json的用途.您不希望在源代码管理中存储所有无意义的node_modules. (2认同)

Str*_*ger 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
Run Code Online (Sandbox Code Playgroud)


Fra*_*sco 7

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

从这个设置开始:

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

我找到了一个避免使用'sudo'命令的解决方案.我们之前需要修复npm权限:https://docs.npmjs.com/getting-started/fixing-npm-permissions和Node的修复权限:http://mawaha.com/permission-fix-node- js /之后我们可以检查并重新安装没有'sudo'的软件,用于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 
Run Code Online (Sandbox Code Playgroud)

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


Jad*_*eye 5

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

sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass
Run Code Online (Sandbox Code Playgroud)