Node Sass在当前环境下找不到绑定:Linux 64位,使用Node.js 7.x。

5

我在使用Ionic Serve时遇到问题,出现了以下错误信息(请注意,在使用 CTRL + C 终止会话之前,一切都正常,然后它开始出现此错误):

    Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 7.x

Found bindings for the following environments:
  - Linux 64-bit with Node.js 8.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass --force` to build the binding for your current environment.

为了尝试解决这个问题,我已经:
  1. 使用命令 npm rebuild node-sass --force
  2. 删除了 node-sass 目录并运行了 sudo npm install
  3. 删除了整个 node modules 目录并使用 sudo npm install 重新安装了所有内容
任何帮助都将不胜感激。根据其他帖子的情况,对大多数人来说,上述选项之一起作用了。只是对我没有用。
我正在运行 Linux Ubuntu,并且我没有更改过我的节点版本。
       v6.12.2
->      v7.10.1
         system
default -> 7.10.1 (-> v7.10.1)
node -> stable (-> v7.10.1) (default)
stable -> 7.10 (-> v7.10.1) (default)
iojs -> N/A (default)
lts/* -> lts/carbon (-> N/A)
lts/argon -> v4.8.7 (-> N/A)
lts/boron -> v6.12.2
lts/carbon -> v8.9.3 (-> N/A)

NPM版本是4.2.0。

2个回答

2
我遇到了类似的问题,原因是我在电脑上安装了node v11.4.0,但我的项目仓库中使用的是旧版本的node(10.13.x)。我找到的解决方法是:cd node_modules 然后运行 npm rebuild node-sass。这应该可以解决问题,因为node-sass有一个postscript会在你所在的目录的上一级目录中运行。我将nvm配置成在我的项目目录中安装node版本。例如,如果你在项目文件夹中,上面的目录将引用node v11.4.0。但如果我在node_modules文件夹中,当postscript运行时,它将使用v10.13.x,因为前一个目录是我的项目文件夹,那里是nvm安装我的目标node版本的地方。我正在努力寻找更好的方法来全局化我的node版本,而不是安装在我的项目目录中...希望这可以帮到你。

2
问题似乎是,您的binding.node适用于nodejs v8,而您目前正在使用nodejs v7。通常,在错误消息的任何位置,您都可以看到需要哪个binding.node
您可以尝试自己从https://github.com/sass/node-sass/releases下载适用于您环境的binding.node,并将其放入npm-cache/node-sass/vX.X.X文件夹中,然后重复您已经执行的步骤。

1
谢谢,我该如何确定要下载哪一个? - user3836415
我不知道如何解决这个问题。但是我会选择最新的版本。通常,如果出现错误,则错误日志会显示正确绑定节点的名称。 - ochs.tobi
1
在尝试了其他几种解决方案后,这是我需要的hacky解决方案 :) - Calum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接