问题描述
我想在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复制了绑定。