当前位置: 首页>>技术教程>>正文


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

, , , ,

问题描述

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

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

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

npmjs.com上的模块描述指出,在Ubuntu下解决#!/usr/bin/env node可能存在问题,以及如何解决此问题,但我的机器上不是这种情况。我找不到任何有用的信息,因此希望您能对我有所帮助。

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

附注:我已经尝试重新安装node-sass,但没有成功。没有什么变化。

最佳办法

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

npm install node-sass

要么

npm uninstall node-sass
npm install node-sass

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

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来解决此问题。

第四种办法

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

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

第五种办法

这个解决方法(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 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节点版本: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或ionic的软件。

我遵循了这一步骤:

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

第六种办法

将以上两个答案结合起来对我来说很有效,外加其他功能:

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

第七种办法

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

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

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

C:\ Users \ Martijn \ Documents \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-x64-46

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10294.html,未经允许,请勿转载。