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

libsass bindings not found when using node-sass in nodejs

我想在我的 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

P.S.: 我已经尝试重新安装 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

我通过删除现有的 /node_modules 文件夹和 运行 npm update

解决了这个问题

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

我的解决方案是降级到 v0.10.25(如果您使用 n,请尝试 sudo n 0.10.25

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

从这个设置开始:

Cordova CLI:5.3.3 Gulp 版本:CLI 版本 3.9.0 Gulplocal:本地版本3.9.0 离子版本:1.1.0 离子 CLI 版本:1.6.5 离子应用程序库版本:0.3.9 ios-部署版本:未安装 ios-模拟版本:5.0.1 OS: Mac OS X Yosemite 节点版本:v4.1.1 Xcode 版本:Xcode 6.4 构建版本 6E35b

我找到了避免使用 'sudo' 命令的解决方案。我们需要先修复 npm 权限,如下所示:https://docs.npmjs.com/getting-started/fixing-npm-permissions and fixing permissions for Node here: 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 

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

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

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

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

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

我通过 updating my gcc from 4.4.x to 4.7.x

解决了这个问题

这对我来说是一个 Node 版本问题,请尝试使用 nvm 将您的版本回溯到类似以下内容:0.10.32。这对我有用。我是运行 4.2.2

我已经解决了这个问题,可以用指定的 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

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

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

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

无需 sudo 或重新安装。这对我一直有效:

nvm use 0.12.2

这是我为解决问题而采取的步骤。

  1. 我手动更新我的节点到最新版本

  2. 重新安装节点-sass

npm 安装节点-sass

3.npm 修复某些漏洞的审核修复程序。

`npm audit fix`

5.npm 安装节点-sass

 `npm install node-sass`

此后可以正常工作和编译。 如果与我的回答有关的任何内容不正确,我深表歉意。我只是一个初学者。 希望对你有用