【问题标题】:libsass bindings not found when using node-sass in nodejs在 nodejs 中使用 node-sass 时找不到 libsass 绑定
【发布时间】:2015-06-10 07:02:26
【问题描述】:

我想在我的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 但没有成功。没有任何变化。

【问题讨论】:

  • 如果 Philipp 的回答解决了您的问题,请接受。它解决了我的问题。
  • 在我更新到最新的 NodeJS 版本后,我在 Ionic 项目中遇到了这个问题——输出指示运行 npm rebuild node-sass,这为我/我的环境消除了错误。

标签: node.js ubuntu npm libsass node-sass


【解决方案1】:

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

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

【讨论】:

  • 谢谢!我总是忘记如何解决这个问题,到目前为止,这是最简单快捷的解决方案。
  • 这解决了我的问题!是显着更新节点的结果。
  • 这终于为我做到了,与这个问题的几乎所有其他回复不同。 +1
  • 谢谢谢谢谢谢!这个小问题杀死了一次演示,我害怕升级并恢复到0.12.7,今天我再次尝试,出现问题并修复它!
  • 这也为我解决了这个问题......经过数周尝试其他解决方案并且我的项目没有测试套件。谢谢
【解决方案2】:

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

npm install node-sass

npm uninstall node-sass
npm install node-sass

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

npm rebuild node-sass

【讨论】:

  • 当我尝试重建命令时,我收到错误“错误:找不到 Python 可执行文件“python”...不确定我的是 Sass 的 C 版本
  • @Sebastian Native Abstractions for Node (nan) “从一个版本到下一个版本发生了巨大变化”,并且通常需要为每个版本重新编译。 node-sass 完全是关于将 node 绑定到 C 程序 lib-sass。链接:node addonsa celebrated commentlibsass
【解决方案3】:

我通过删除现有的/node_modules 文件夹并运行npm update 解决了这个问题

【讨论】:

  • 实际尝试过,但在这种情况下,/node_modules 受 SVN 控制...删除目录会使 SVN 树不同步。否则这是一个不错的选择!
  • 这也时常发生在我身上,删除 node_modules 并重新运行 npm install 也适用于我。
  • 源代码控制是存储依赖项的一个不好的地方,因为这个原因!它需要您所有环境的完全同步。 package.json 旨在描述您的依赖项,您应该使用其他东西在您的盒子上安装您的依赖项。 (有一个调用 npm install 的脚本,或者一个 docker 容器,or or or)
  • 也许他想要一个完全同步的所有环境? -- 可预测和可重现的构建!= 坏主意。
  • 这就是 package.json 的用途。您不想在源代码管理中存储所有无意义的 node_modules。
【解决方案4】:

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

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

【讨论】:

    【解决方案5】:

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

    从这个设置开始:

    科尔多瓦 CLI:5.3.3 Gulp 版本:CLI 版本 3.9.0 Gulp local:本地版本 3.9.0 离子版本:1.1.0 离子 CLI 版本:1.6.5 离子应用程序库版本: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 或 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

    【讨论】:

    • 非常感谢。 2小时后终于修好了
    【解决方案6】:

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

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

    【讨论】:

      【解决方案7】:

      我已经解决了这个问题,用指定的 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 中复制绑定。

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          【解决方案9】:

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

          【讨论】:

            【解决方案10】:

            这对我来说是 Node 版本问题,尝试使用 nvm 将您的版本回溯到类似:0.10.32。这对我有用。我正在运行 4.2.2

            【讨论】:

              【解决方案11】:

              我通过updating my gcc from 4.4.x to 4.7.x解决了这个问题

              【讨论】:

                【解决方案12】:

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

                nvm use 0.12.2
                

                【讨论】:

                  【解决方案13】:

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

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

                  2. 重新安装 node-sass

                  npm install node-sass

                  3.npm 审计修复以修复某些漏洞。

                  `npm audit fix`
                  

                  5.npm install node-sass

                   `npm install node-sass`
                  

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

                  【讨论】:

                    猜你喜欢
                    • 2016-08-21
                    • 1970-01-01
                    • 2016-07-04
                    • 2015-07-15
                    • 2016-01-02
                    • 1970-01-01
                    • 2016-04-23
                    • 2016-04-09
                    • 2016-01-06
                    相关资源
                    最近更新 更多